【问题标题】:easy jQuery - php communication简单的 jQuery - php 通信
【发布时间】:2012-09-25 20:54:20
【问题描述】:

我正在开发一个 php 应用程序,现在我必须构建一个接口来在 jquery 和 php 之间进行通信。我已经有一个工作控制器/动作。如果我需要在请求中向 php 发送数组,那么与 jQuery 进行通信的最佳方式是什么。

示例: 完成请求所需的数据:

$request_data = array 
(
  'key1' => 'value1',
  'list1' => array
  (
    'listkey1' => 'listvalue1',

  )
)

我应该以不同的方式发送它作为“正常”的后请求,还是更容易发送一个用 json 编码的数组的后变量? ($post_json="{key: value....})

重点是在 jquery 中的轻松集成

编辑:这不是将数据传递给客户端,而是将数组从客户端传递给 php-script

【问题讨论】:

  • 你用 ajax 标记了这个问题,所以使用 ajax 吗?
  • 是的,它是一种形式,具有动态元素。如果用户使用下拉菜单,则下拉菜单应在显示之前根据其他输入动态更新。
  • 听起来确实像是 ajax 的工作。
  • 我的问题是,将数组传递给 php-script 的最佳方式是什么,作为单个 post-var 或多个 post-var 中的 json。还是有更好的解决方案?

标签: php jquery ajax interface


【解决方案1】:

使用phps json_encode() 生成响应,在客户端用jquery 读取?

$.getJSON('youpage.php', function(data) {
  $.each(data, function(key, value) {
    alert(key + '=>' + value);
  });
}

http://php.net/manual/en/function.json-encode.php

更新

关于通信的另一种方式,从客户端到 php。这完全取决于手头的任务。如果下拉列表中的数据完全取决于表单上的条目,否则它们是无状态的。然后,最佳路线将取决于您的后端代码,您可以使用单个变量进行 ajax 发布,或者在发送之前将它们连接成一个变量,然后在后端将它们拆分。或者,如您所说,您可以创建一个 json 字符串,然后在后端使用 json_decode。

哪条路线适合目的取决于很多因素,我认为没有对错之分。

就我个人而言,我会向后端生成一个 AJAX 发布请求(虽然我不是 php 编码器),然后直接处理请求对象。您仍然需要处理数据结构,所以为什么要从请求中添加反序列化 json 的开销/额外步骤。

【讨论】:

  • 响应已经是 json 编码的,我只是不知道如何使用 ajax 请求将类似数组的信息从 js 传递到 php。很抱歉造成混乱
  • 在 ajax 帖子中传递数组有问题吗?
  • 只需将 JSON 字符串在单个 POST 变量中发布到服务器?为什么不呢,这是最简单的解决方案,尤其是对于例如多维数组。
  • 好的,现在可以了,我用$.post方法来使用ajax-posts,很简单。谢谢大家!
【解决方案2】:

你可以使用jquery post

$.post('url', data, function(data) {
  console.log(data);
});

你可以访问php中的数据

echo $_POST['key1'];
echo $_POST['key2'];

【讨论】:

  • 嗯,我想我已经了解了更多关于 ajax/js/jquery 的信息。我想我完全不知道我在做什么 ;-) 谢谢大家
  • 感谢您的链接,这是测试 ajax 发布请求的良好起点 :-)
猜你喜欢
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多