【发布时间】:2019-01-30 10:02:41
【问题描述】:
一点介绍
所以我是这种工作的新手,我正在为管理员制作一个页面,其中有关于员工、项目等的数据库信息,这些信息被组织成带有按钮的表格 >>> DELETE 或 UPDATE 用户(在这种情况下)更新功能将不起作用!
所以这两个“按钮”实际上是使用<a> 和onclick 调用myAjaxDelete 或myAjaxAdd(我对ajax 顺便说一句不太熟悉)调用php 文件,从@ 传递数据987654325@ 字段
DELETE 按钮(或标签)似乎工作得很好,但 UPDATE 不会
我尝试更改我的sqli查询并在signle字段上进行测试,但徒劳无功
updateDbUt.php:
<?php
$conn = new mysqli("localhost", "root", "","gestion");
if($_POST['action'] == 'call'){
$id=$_POST['name'];
$np=unserialize($_POST['np']);
$adr=unserialize($_POST['adr']);
$ntel=unserialize($_POST['tel']);
$cin=unserialize($_POST['cin']);
$pass=unserialize($_POST['pass']);
$idEquipe=unserialize($_POST['idEquipe']);
$mail=unserialize($_POST['mail']);
$role=unserialize($_POST['role']);
$q = "UPDATE `gestion`.`utilisateurs` SET `np` = '$np', `adr` ='$adr', `numTel` = '$ntel', `cin` = '$cin', `pass` = '$^pass', `idEquipe` = 'idEquipe', `adrElectronique` = '$mail', `role` = '$role' WHERE `utilisateurs`.`id` = '$id'";
$r=mysqli_query($conn, $q);
if ( !(mysqli_affected_rows($conn)==0 ) ) {
echo "updated";
} else {
die("problem updating ").mysqli_error($conn);
}
}
?>
脚本:
function myAjaxAdd() {
$.ajax({
method:'POST',
url: 'updateDbUt.php',
data:{
action:'call',
name: $('#id').serialize(),
np: $('#np').serialize(),
adr: $('#adr').serialize(),
tel: $('#tel').serialize(),
cin: $('#cin').serialize(),
mail: $('#mail').serialize(),
idEquipe: $('#idEquipe').serialize(),
pass: $('#pass').serialize(),
role: $('#role').serialize(),
},
success:function(html) {
alert(html);
}
});
}
</script>
这是 HTML 代码以防万一:
<form method="POST">
<table class="table table-bordered">
<thead>
<tr>
<th>Nom Prenom</th>
<th>Adresse</th>
<th>N°Tel</th>
<th>Cin</th>
<th>ID Utilisateur</th>
<th>ID Equipe</th>
<th>adresse electronique</th>
<th>pass</th>
<th>role</th>
<th>actions </th>
</tr>
</thead>
<tbody>
<?php
$sql="SELECT * FROM utilisateurs";
$q=mysqli_query($conn,$sql);
while ($t=mysqli_fetch_assoc($q)) {
?>
<tr>
<td> <?php echo $t['np']; $np=$t['np']; ?> <input type="hidden" name="np" id="np" <?php echo "value='".$np."'"; ?> > </td>
<td> <?php echo $t['adr']; $adr=$t['adr'];?> <input type="hidden" name="adr" id="adr" <?php echo "value='".$adr."'"; ?> ></td>
<td> <?php echo $t['numTel']; $numTel=$t['numTel']; ?> <input type="hidden" name="tel" id="tel" <?php echo "value='".$numTel."'"; ?> ></td>
<td> <?php echo $t['cin']; $cin=$t['cin']; ?> <input type="hidden" name="cin" id="cin" <?php echo "value='".$cin."'"; ?> ></td>
<td> <?php echo $t['id']; $id=$t['id'];?> <input type="hidden" name="id" id="id" <?php echo "value='".$id."'" ?>></td>
<td> <?php echo $t['idEquipe']; $idEquipe=$t['idEquipe'];?> <input type="hidden" name="idEquipe" id="idEquipe" <?php echo "value='".$idEquipe."'"; ?> ></td>
<td> <?php echo $t['adrElectronique']; $mail=$t['adrElectronique'];?> <input type="hidden" name="mail" id="mail" <?php echo "value='".$mail."'"; ?> ></td>
<td> <?php echo $t['pass']; $pass=$t['pass']; ?> <input type="hidden" name="pass" id="pass" <?php echo "value='".$pass."'"; ?> ></td>
<td> <?php echo $t['role']; $role=$t['role']; ?> <input type="hidden" name="role" id="role" <?php echo "value='".$role."'"; ?> ></td>
<td>
<a class="add" title="Add" data-toggle="tooltip" onclick="myAjaxAdd()">
<i class="material-icons"></i>
</a>
<a class="edit" title="Edit" data-toggle="tooltip" >
<i class="material-icons"></i>
</a>
<a class="delete" title="Delete" data-toggle="tooltip" onclick="myAjaxDelete()">
<i class="material-icons"></i>
</a>
</td>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
最终结果是它提醒我的更新错误 msg 它应该更新数据库 请问我需要帮助
另外:我正在使用 wampserver 进行测试
【问题讨论】:
-
...它提醒我的更新错误消息它说什么?
-
@B001ᛦ 它只显示
diemsg 这是“问题更新”,没有其他来自mysqli_error() -
将
die("problem updating ").mysqli_error($conn);更改为die("problem updating ".mysqli_error($conn));以查看错误...或只是die(mysqli_error()) -
@B001ᛦ 同样的事情
mysqli_error()不会显示错误 -
php 和 javascript 的
serialize()/unserialize()函数完全不相关,做的事情完全不同。您将希望在 javascript 中序列化您的表单 - 而不是单个值 - 而不是在 php.ini 中使用它。在那里你只需要一个准备好的语句来绑定这些值。
标签: php jquery database mysqli