我正在尝试使用 jquery ajax 方法与 php 进行通信。
<form class="form-group" id="formm" action="check.php" method="post">
<label for="">Testing</label><br>
<input type="text" class="col-md-5" id="name" placeholder="" name="name"><br>
<button type="button" name='button' id="button" class="btn btn-default" type="submit">button</button>
<p class="help-block" id="result">Help text here.</p>
</form>
我的jquery
$(document).ready(function(){
$("#button").click(function(){
$.post("check.php", $( "#formm :input" ).serialize(), function(info) {
$("#result").html(info);
});
});
});
$("#button").click(function(e){
e.preventDefault();
});
我的PHP代码
if(isset($_POST['button'])) {
$username = $_POST['name'];
$con = mysqli_connect("localhost","root","","test") or die ("Couldnt connect");
$check = "INSERT INTO name WHERE name='$username'";
$sql_check = mysqli_query($con,$check);
if($sql_check) {
echo "Successfully inserted";
} else {
echo 'Couldnt Insert';
}
}
现在,js 脚本正在与 php 通信,但不是我想要的那样。 1.当我使用serialize()时,它停止通信 2.当我不使用serialize()时,我的php代码向我发送回“无法插入” 3.我尝试使用php错误报告线,js不再通讯。控制台上也没有错误。 我有什么遗漏的吗?
更新:尝试仅序列化表单而不是输入元素,仍然不起作用。
最佳答案
首先,一些警告:
Little Bobby说your script is at risk for SQL Injection Attacks. 了解prepared MySQLi 的声明。偶escaping the string不安全! Don't believe it?
在查询中添加错误检查,例如或 die(mysqli_error($con))
。或者您可以在当前的错误日志中查找问题。
我一直在寻找错误的错误。您的 INSERT
查询语法错误,您不能在 INSERT
查询中使用 WHERE
。
将 INSERT INTO name WHERE name='$username'
更改为 INSERT INTO name_of_table (name_of_column) VALUES('$username')
关于javascript - jquery post,错误报告,序列化不起作用。尝试了其他一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42787059/