GET数据未通过AJAX调用发送


GET data not being sent with AJAX call

我需要使用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;
    }
}

它似乎与你的变体没有什么变化,但有一天它帮助了我。