我使用ajax将update
表格数据添加到数据库,如果成功,它会返回一些文字,但是它无法正常工作
HTML
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<form>
<input type="text" name="name" value="" placeholder="name..." >
<br>
<input type="text" name="email" value="" placeholder="email..." >
<br>
<button id="form-btn" class="btn btn-default" onclick="update()">click me</button>
</form>
</div>
</div>
<div class="row">
<div class="col-md-12"><span id="result">here</span></div>
</div>
</div>
JS
function update() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState = 4 && xmlhttp.status == 200) {
// document.getElementById("result").innerHTML = xmlhttp.responseText;
alert(xmlhttp.responseText);
}
}
xmlhttp.open("POST","ajax_form.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var str = $("form").serialize();
xmlhttp.send(str);
}
PHP
$name = $_POST["name"];
$email = $_POST["email"];
if ($sql_insert = $conn->prepare("INSERT INTO $tablename (name, email) VALUES (?, ?)")) {
# Bind the variables to the parameter as strings
if (!$sql_insert->bind_param("ss", $name, $email)) {
echo "binding parameter fail";
}
# Execute the statement
if (!$sql_insert->execute()) {
echo "insert fail: " . $sql_insert->error . "<br>";
} else {
echo "success";
}
# Close the prepared statement
$sql_insert->close();
}
我期待的结果是:当用户提交表单时,它会通知用户它在<span id='result'></span>
中成功更新,但它只是在没有通知的情况下更新数据。
答案 0 :(得分:1)
由于声誉,我无法对你的帖子发表评论。但是你的代码有错误。你错过了一个等号
if (xmlhttp.readyState = 4 && xmlhttp.status == 200)
应该是
if(xmlhttp.readyState == 4&amp;&amp; xmlhttp.status == 200)
答案 1 :(得分:0)
这是使用jQuery ajax的方法。 类似的应该使用您的代码。 尝试在回调函数中添加警报。
$.ajax({
url: ...,
type: ...,
data: ...,
async:false,
error: function(data){ // callback triggers almost directly after returning
$("#result").html("Error occurred");
},
success: function(data){
$("#result").html("update successful");
}
});