将JavaScript变量与PHP数组进行比较

3
我有一个JavaScript变量和一个PHP多维数组。我想检查PHP数组中包含相当于JavaScript变量的信息的元素,并显示这些元素。我不确定最佳实现方法。
我倾向于将PHP数组转换为JavaScript对象数组(记住,它是多维的),并在JavaScript中进行比较,然后使用jQuery输出正确的元素。但这似乎对于这个看起来相当简单的问题而言有点大费周折。
是否有更好的方法?

1
json_encode($php_array); //这并不太麻烦...尽管根据数据大小而定,将所有数据发送到客户端进行计算可能不值得。 - John Strickler
如果JavaScript在客户端,而PHP在服务器端,你打算如何在它们之间进行通信? - hugomg
@Missingo 通过将PHP转换为JS数组? - tessr
2个回答

0
这两个脚本,你的 PHP 脚本和你的 JavaScript,在不同的时间执行。那么,你的 PHP 怎么知道 JavaScript 变量中存储的值是什么?通过 POST 或 GET 到 PHP 脚本。一旦你这样做了,你的 PHP 脚本就可以进行比较,并以任何你希望的格式返回结果(例如 JSON)。

我无法重新加载页面,所以我认为这个方法行不通。在我的原始帖子中,我建议将PHP发送到JS(而不是相反),但这不是一个好主意吗? - tessr
谁说要重新加载?使用异步请求(即 AJAX)。 - James Sumners
好的,最终使用了AJAX。谢谢。 - tessr

0

PHP 是服务器端脚本,而 Javascript 是客户端脚本。因此,不可能将 Javascript 变量传递给 PHP,因为 PHP 是由服务器生成的。

  1. 用户访问一个 PHP 文件网页。
  2. 服务器处理 PHP 页面并呈现/输出 HTML 页面。
  3. 用户正在查看 HTML 页面。
  4. Javascript 在页面上发生。

因此,在页面呈现之前就不存在任何 Javascript 可以传递的情况下,将 Javascript 变量传递给 PHP 是不可能的。虽然你可以使用 <?php echo $variable ?> 将 PHP 变量传递给 Javascript。

针对这个问题有两种解决方案。

  1. 使用 Javascript 设置 cookie,然后让 PHP 检索 cookie 值。
  2. 在页面上的 HTML 元素中添加属性 itemid="43",然后在动作(单击、发布)时让 Javascript 检索元素的属性值,并将信息发布到 PHP 页面。

这两种方法都存在安全漏洞,所以需要相应地编写代码。


谢谢。这是所有有用的信息,希望有人会发现它有用!(最终我选择了一个AJAX请求(类似于您的第二个#2,我想))。 - tessr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接