我需要使用AJAX向页面添加一些数据。为此,我编写了以下代码。问题是调用没有返回任何数据。到目前为止,PHP文件只是用于测试目的。显然,一些实际功能将被添加到其中。Javascript:
<script type="text/javascript">
function addprod(prodid) {
var xmlHttp;
if (prodid="") {
document.getelementbyID("newprod").innerhtml="";
return;
}
if (window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
else{
xmlHttp=new ActiveXObject("Microsoft.XMLHttp");
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readystate==4 && xmlHttp.status==200){
document.getelementbyID("newprod").innerhtml=xmlHttp.responseText;
}
}
xmlHttp.open("GET","add_row.php?q="+prodid,true);
xmlHttp.send();
}
</script>
HTML:
<span id="newprod"></span>
<form>
<input type="text" name="addprodbyid" class="form-control" placeholder="Enter Product ID" onkeyup="addprod(this.value)" />
</form>
add_row.php:
<?php
$prod_id=$_REQUEST['q'];
echo $prod_id;
?>
我试着和萤火虫核实了一下。AJAX调用正在工作,但没有任何数据被发送到PHP文件。每次调用的URL都是add_row.php?q=
。
错误地分配内部if条件
if (prodid = "") {
document.getelementbyID("newprod").innerhtml="";
return;
}
正确的是
if (prodid == "") {
document.getelementbyID("newprod").innerhtml="";
return;
}
为什么不使用jquery简单
function addprod(prodid) {
$.ajax({
url: "add_row.php",
type: "post",
data: {'q':prodid},
success: function(data){
$("#newprod").html(data);
},
error:function(){
$("#newprod").html('There is error while submit');
}
});
}
add_row.php:
$prod_id=$_POST['q'];
echo $prod_id;
如果
xmlHttp.readystate
不是类型,则将其更正为(s=>s)
xmlHttp.readyState
如果您仍然想知道为什么您的变体可能不起作用:首先,将onreadystatechange
函数移到xmlhttp.send()
下面。也尝试将onreadystatechange
更改一点
xmlHttp.open("GET","add_row.php?q="+prodid,true);
xmlHttp.send();
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState != 4) return
if (xmlHttp.status == 200) {
document.getelementbyID("newprod").innerhtml=xmlHttp.responseText;
}
}
它似乎与你的变体没有什么变化,但有一天它帮助了我。