因此,我对这种工作还是陌生的,我正在为管理员创建一个页面,其中有关于员工,项目等的数据库信息,这些信息组织成表格,并带有按钮,以使>>> Delete < / strong>或 UPDATE 用户(在这种情况下)将无法使用更新功能!
因此2个“按钮”实际上是使用<a>
和onclick
来调用myAjaxDelete
或myAjaxAdd
(我对ajax btw并不熟悉)来调用php文件,从hidden input
字段中传入数据
删除按钮(或标签)似乎工作正常,但更新不会
我尝试更改我的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>
最终结果是它警告我的更新错误消息 它应该更新数据库 请我需要帮助
也:我正在使用wampserver进行测试
答案 0 :(得分:0)
首先,您需要修复查询,因为查询错误
==>
您传递的是$ ^ pass而不是$ pass和idEquipe而不是$ idEquipe 正确的查询应该是
$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'";
第二次,我建议您显示查询并在phpmyadmin中执行,因为您正在使用wampserver