如何使用javascript以交互方式从php脚本获取数据

时间:2014-05-10 13:56:29

标签: javascript php arrays

我有这个PHP脚本:

<?php
$arr = array(array("a","b"),array("c","d"));
qq($arr);
function qq($arr){
foreach($arr as $ar => $r){
//getting some work done
//sending the array $r (or values)to javascript
}
}
?>

是否可以在数组1之前使用javascript获取0数组的值。

到目前为止我得到的是来自stackoverflow的这个js:

<script type="text/javascript">
function q(){

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://127.0.0.0.1/q.php");
xmlhttp.send(null);
xmlhttp.onreadystatechange = callbackFunction;

function callbackFunction(){
if (xmlhttp.readyState == 4){
xml = xmlhttp.responseText;
document.getElementById("q").value = xml;
}}}
</script>

但它没有做我想做的事(我想我错过了什么)。

我的HTML:

<input type="submit" onclick="q();" />
<div id="q"></div>
<div id="q1"></div>

是否可以将数组0值放在div(id = q)中,当数组1准备就绪时将它的值放在div中(id = q1)

2 个答案:

答案 0 :(得分:1)

通过XMLHttpRequest()的“正常”HTTP请求不允许在单个请求中执行此类行为。

您可以选择以下选项:

Server Send Events

颠倒

  • 它们非常容易构建。服务器上不需要什么特别的东西。只需谷歌服务器发送事件,你会发现一些有关它们如何工作的例子。
  • 他们通过代理和防火墙以及任何其他http请求,因为它是一个普通的http请求。

下行

  • 无法在Internet Explorer(?)
  • 上运行
  • 如果代理某处缓冲太多,可能无法实时更新。但是在这种情况下它仍然有效,它只是错过了实时通信

Websockets

颠倒

适用于所有最近的浏览器。使您能够进行全双工通信并获得所需的一切。

下行

  • 根据其配置,可能会或可能无法通过代理工作。
  • 服务器上需要特殊扩展

(Long-) polling

颠倒

  • 最佳兼容性(即使在旧版浏览器中也能正常工作,代理服务器或防火墙也没有问题)

下行

  • 创建大量开销,因为它确实为每条消息创建了新的http连接
  • 您需要在某处存储中间结果,因为轮询请求与您的应用程序的线程不同,而不是代码生成机制。

答案 1 :(得分:0)

你可以试试吗

if (xmlhttp.readyState == 4){
  xml = xmlhttp.responseText;
  document.getElementById('q').innerHTML=xml;
}}}