Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax从服务器接收响应,并将其保存在变量中,以供以后使用PhP_Javascript_Php_Mysql_Ajax_Database - Fatal编程技术网

Javascript Ajax从服务器接收响应,并将其保存在变量中,以供以后使用PhP

Javascript Ajax从服务器接收响应,并将其保存在变量中,以供以后使用PhP,javascript,php,mysql,ajax,database,Javascript,Php,Mysql,Ajax,Database,我有一个问题,我无法解决。我对Ajax和PhP相当陌生,因此我将非常感谢能得到的任何帮助 我在本地主机上有一个数据库。我试图实现的是使用数据库中的信息从服务器获取响应。我想将这些信息存储在一个变量中,以便以后可以在某个地方“回音” 这背后的整个想法是: 在输入字段中输入产品编号。请求正在发送到数据库。收到数据库的响应后,product number下面的另一个输入字段将自动填充产品名称。您单击下一步,再次看到输入字段,其中填充了基于您先前输入的产品编号的其余信息 到目前为止,问题是一旦发送了所有

我有一个问题,我无法解决。我对Ajax和PhP相当陌生,因此我将非常感谢能得到的任何帮助

我在本地主机上有一个数据库。我试图实现的是使用数据库中的信息从服务器获取响应。我想将这些信息存储在一个变量中,以便以后可以在某个地方“回音”

这背后的整个想法是:

在输入字段中输入产品编号。请求正在发送到数据库。收到数据库的响应后,product number下面的另一个输入字段将自动填充产品名称。您单击下一步,再次看到输入字段,其中填充了基于您先前输入的产品编号的其余信息

到目前为止,问题是一旦发送了所有信息,我就可以立即得到响应,但如果我只想看到一条信息,然后再“回显”其他信息,但我不知道如何做到这一点

我希望我能够解释我的问题所在,如果没有,我会尝试添加更多的信息

这是我的Ajax代码。我不知道如何存储从数据库中获取的信息,以便以后使用

<script>
function showPump(str) {
    if (str == "0") {
        document.getElementById("pumpInfo").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("pumpInfo").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET","getpump.php?q="+str,true);
        xmlhttp.send();
    }
}
</script>

功能显示泵(str){
如果(str==“0”){
document.getElementById(“pumpInfo”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}否则{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“pumpInfo”).innerHTML=this.responseText;
}
};
open(“GET”、“getpump.php?q=“+str,true”);
xmlhttp.send();
}
}
HTML的一部分:

<form>
    Product number:<input type="text" name="productNR" onfocusout="showPump(this.value)">
</form>
<br>
<div id="pumpInfo"><b>Pump info will be below</b></div>

产品编号:

泵信息将显示在下面
PHP mysqli_select_db($con,“pumps”); $sql=“从泵中选择*,其中产品编号=””$q.“”; $result=mysqli\u查询($con,$sql); while($row=mysqli\u fetch\u数组($result)){ 回显“产品类型
”; } mysqli_close($con); ?>
最终的结果是,一旦我填写了产品编号字段,“结果”(产品类型)就显示在它的正下方,但我还有4个数据库条目希望在下一步中使用。

这里有一种存储通过AJAX接收的值的方法

//results will be an array
var results;

if (this.readyState == 4 && this.status == 200) {
  document.getElementById("pumpInfo").innerHTML = this.responseText;
  results.push(this.responseText); //push the value of this.reponseText to the array.
}

//this pops the value of the first element of the results array
alert(results[0]);

当你说“下一步”时,你可能想叫它“在DOM上显示”而不是“回声”,下一步是在同一页上还是在另一页上?@kittykittybangbang下一步是在同一页上,但当然在你完成第一步之前它不会显示。谢谢你的回复!我会尝试一下,但作为附加信息,这将只存储在数据库中的一个数据条目上?我正在寻找一个解决方案来存储4个不同的数据条目,以便以后在PhP中使用它们作为“回音”,它将存储您需要的任意数量的数据。结果被推送到一个数组中。你呼叫的次数越多,它推动的力度就越大。例如,当您需要第二个结果时,只需说result[1]
//results will be an array
var results;

if (this.readyState == 4 && this.status == 200) {
  document.getElementById("pumpInfo").innerHTML = this.responseText;
  results.push(this.responseText); //push the value of this.reponseText to the array.
}

//this pops the value of the first element of the results array
alert(results[0]);