以同步方式从php页面获取数据

时间:2016-09-10 00:46:58

标签: php ajax

我有一个文件add.php,它会添加两个数字并返回结果。 我的其他文件list.php包含一个包含需要添加的数字的列表

$list = array ( 0=> 2,3
1=>4,5
2=>6,7);

这个数组可能更长,因此我必须使用for循环读取它的数据:

for($i=0;$i<count($list);$i++) {
//something needs to be done here
}  

我想要做的是用一个提交按钮添加所有对。 我的问题是,只有前一个数字得到结果,才能添加每对数字。 我希望例如结果数组改变如下:

No1  | No2  | result   
---- | ---- | -------- 
2    | 3    | on queue 
---- | ---- | -------- 
4    | 5    | on queue 
---- | ---- | -------- 
6    | 7    | on queue 

No1  | No2  | result   
---- | ---- | -------- 
2    | 3    | 5        
---- | ---- | -------- 
4    | 5    | on queue 
---- | ---- | --------
6    | 7    | on queue

No1  | No2  | result
---- | ---- | --------
2    | 3    | 5
---- | ---- | --------
4    | 5    | 9
---- | ---- | --------
6    | 7    | on queue

No1  | No2  | result
---- | ---- | --------
2    | 3    | 5
---- | ---- | --------
4    | 5    | 9
---- | ---- | --------
6    | 7    | 13

我最初尝试使用ajax,就像这样:

<script> function loadDoc(fid1,fid2) {
         var xhttp = new XMLHttpRequest();
         xhttp.onreadystatechange = function() {
         if (this.readyState == 4 && this.status == 200) {
         document.getElementById('content').innerHTML = xhttp.responseText;
         }
         };
         xhttp.open('POST', 'play2.php', true);
         xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
         xhttp.send('number1=$No1&number2=$No2');
         } 
         </script>

其中$No1$No2$list[$i][0],$list[$i][1]。 所以,这个失败了,我想因为ajax的异步性质,但我没有关于如何做到这一点的其他想法。 我想做的事情比这更复杂,但用这个例子来解释它更容易。 如果可能的话,我想在没有数据库调用的情况下这样做。

1 个答案:

答案 0 :(得分:0)

我设法使用ajax和async:false这样的

<script>
         $.ajax({ 
             type: "POST",   
             url: "play2.php", 
             data: {number1:"'.$No1.'" , number2:"'.$No2.'"}, 
             async: false,
             success : function (data) {
                 $("#content").replaceWith(data);
                }
            });
</script>

我将它放在for循环中以发送所有值对,并且它按照我想要的方式工作。