我在数据库mshop2中有一个名为userdb的表。它有列:
我的js文件包含存储在其中的所有函数名为mshop2.script,其中我也存储了deleteUser函数,它将跳转到名为deleteUser.php的文件
我希望运行代码的php文件是admin.php,它是用这些写的:
<font color="white">Deletion - ID</font>
<input class="test1" type="text" id="txUserid" value="">
<input class="test2" name="Submit" type="submit" value="" id="submit"
onClick='deleteUser();txUserid.value="";'/>
“输入类”单词将根据我的css文件匹配图像文件夹,以显示我希望代码在我单击时运行的图像,所以不要介意。 我已将这些行包含在我的.php文件的开头:
<script src='jquery.js'></script>
<script src='mshop2.script.js'></script>
我在mshop2.script.js文件中写了这个:
function deleteUser(){
var userid = $('#txUserid').val();
var finalData = {
uid: userid
};
$.post('deleteUser.php', finalData, function(resp){
if(resp == 'success'){
alert('User successfully deleted.');
getUserList();
}
});
}
这是我的deleteUser.php文件的内容:
<?php
include 'config.php';
$id = mysql_real_escape_string($_POST["userid"]);
$q = "DELETE FROM userdb WHERE ID = '$uid'";
if(!mysql_query($q, $con)){
die('Error: ' . mysql_error());
echo mysql_error();
}else{
echo 'success';
}
mysql_close($con);
?>
没有发生任何事情,如果我在文本框中输入“1”或从1到5输入任何数字,我输入的ID与我输入的相同ID中的匹配行将不会被删除。
我的代码出了什么问题?
答案 0 :(得分:1)
更改: -
$q = "DELETE FROM userdb WHERE ID = '$uid'";
到
$q = "DELETE FROM userdb WHERE ID = '$id'";
您正在捕获变量$ id中的值,并在sql语句中使用$ uid,这就是它无效的原因。
答案 1 :(得分:1)
是发布uid。
将帖子改为
$uid = mysql_real_escape_string($_POST["uid"]);
答案 2 :(得分:0)
你有一个混乱的变量,这让你感到困惑。
在您的脚本代码中,您传递了uid
,其值为userid
并且您在deleteUser.php
而不是mysql_real_escape_string($_POST['userid']);
更改为mysql_real_escape_string($_POST['uid']);
在您的查询中,只需将变量$uid
更改为$id
只需使用与您在脚本中传递的内容类似的变量,这样您就不会很难看到常见错误
EDIT ::: 试试这个 删除html代码上的onclick事件
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(".test2").click(function() {
var id = $("#tsUserid").val();
$.post("deletUser.php", { id: id }, function(data) {
alert(data);
});
});
});
</script>
你的php将是你的deleteUser.php而只是
更改mysql_real_escape_string($_POST['userid']);
到mysql_real_escape_string($_POST['id']);
和你的查询
$q = "DELETE FROM userdb WHERE ID = '$id'";
希望它有所帮助。