javascript - 如何使用 javascript 从 php 脚本交互获取数据

标签 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)

最佳答案

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

您有以下选择:

Server Send Events

上行空间

  • 它们非常容易构建。服务器上不需要什么特别的东西。只需在 Google 上搜索服务器发送的事件,您就会找到一些有关其工作原理的示例。
  • 它们像任何其他 http 请求一样通过代理和防火墙,因为这是正常的 http 请求。

缺点

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

Websockets

上行空间

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

缺点

  • 可能会也可能不会通过代理运行,具体取决于代理的配置。
  • 服务器上需要特殊扩展

(Long-) polling

上行空间

  • 最佳兼容性(即使在较旧的浏览器中也能正常工作,代理或防火墙不会出现问题)

缺点

  • 会产生大量开销,因为它会为每条消息创建一个新的 http 连接
  • 您需要将中间结果存储在某处,因为轮询请求来自与代码生成机制不同的线程到您的应用程序。

关于javascript - 如何使用 javascript 从 php 脚本交互获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581918/

相关文章:

java - 数组堆栈中的 NullPointerException

c - 如何在 C 编程中搜索二维字符串数组中的单词

javascript - 当用户名和传递请求通过ajax完成时如何重定向页面

php - 连接2个以上的sql表而不忽略具有空列的行

javascript - 在 JavaScript 中访问 PHP SESSION 值

php - 如何获取子文件夹的文件列表并使用 php 将它们写入 JSON?

javascript - 如何使用吐出和拼接递归更新数组?

javascript - 如何使用 jQuery 应用/分配伪

javascript - 我无法获得定位父 div 和父 sibling 的按钮

javascript - 在 jQuery 中重复代码