我正在研究AJAX编程,我遇到了一些问题。在下面的代码中,我认为我的PHP脚本没有回应成功。我试图将值插入到我的数据库表中。因此,值将被插入表中。我的页面上有一个span元素,默认情况下不显示任何内容。但是如果php脚本回应成功,它必须显示" AJAX工作"。如果我的PHP脚本没有回显"成功",它必须显示" AJAX没有工作"。但它表明" AJAX没有工作"虽然值已插入。如果我没有包含数据库代码,那么我的脚本将回显成功并且span元素显示" AJAX工作"。但是,如果我包含数据库代码,我认为它并没有回应成功,并且跨度元素正在显示" AJAX没有工作"。以下是我的代码:
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/main.js"></script>
<script src="js/ajax.js"></script>
<script>
function insert(){
var elem = _("myTextArea").value;
var result = _("result");
result.innerHTML += elem + "<br>";
elem.value = "";
var ajax = ajaxObj("POST", "dynamicdiv_parser.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "success"){
_("status").innerHTML == "AJAX worked";
}
else{
_("status").innerHTML == "AJAX didn't work";
}
}
}
ajax.send("post="+elem+"&type=a");
}
</script>
</head>
<body>
<form name="dynamicdivform" id="dynamicdivform" onsubmit="return false;">
<p id="result"></p>
<textarea name="myTextArea" id="myTextArea" cols="100" rows="14"></textarea><br>
<input type="button" id="postBtn" value="POST" onClick="insert()">
<span id="status"></span>
</form>
</body>
我在我的程序中包含了两个JavaScript文件main.js
和ajax.js
。以下是他们的代码。
这是main.js
:
function _(x){
return document.getElementById(x);
}
这是ajax.js
:
function ajaxObj( meth, url ) {
var x = new XMLHttpRequest();
x.open( meth, url, true );
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
return x;
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
这是我回复成功的PHP脚本
<?php
if(isset($_POST["post"])){
include_once("php_includes/dbconsampledb.php");
$data = $_POST['post'];
$type = $_POST['type'];
$sql = "INSERT INTO posts(data, type)
VALUES('$data','$type')";
$query = mysqli_query($db_conx, $sql);
echo "success";
}
?>
在发布这个问题之前,我已经尝试了这些工作,但我没有找到任何解决方案。这对我来说非常重要。所以请任何人调试它并告诉我问题是什么...提前谢谢!!
答案 0 :(得分:2)
_("status").innerHTML == "AJAX worked";
应该是
_("status").innerHTML = "AJAX worked";
只有一个=
答案 1 :(得分:1)
我的建议是使用console.log()来调试你的ajax响应。
if(ajaxReturn(ajax) == true) {
console.log('Response: ', ajax.responseText);
if(ajax.responseText == "success"){
数据库功能可能存在一些错误。