简单的jQuery - php通信

时间:2012-09-25 20:54:21

标签: php jquery ajax interface

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

例如: 满足请求所需的数据:

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

  )
)

我应该发送不同的“正常”后请求,还是更容易发送一个post-var与json编码的数组? ($ post_json =“{key:value ....})

重点是在jquery中轻松集成

编辑:它不是关于将数据传递给客户端,而是将数组从客户端传递到php脚本

2 个答案:

答案 0 :(得分:3)

使用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 post请求(我不是php编码器),然后直接处理请求对象。您仍然需要处理数据结构,所以为什么要添加从请求中反序列化json的开销/额外步骤。

答案 1 :(得分:1)

您可以使用jquery post

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

你可以访问php中的数据

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