我正在开发一个php应用程序,现在我必须构建一个在jquery和php之间进行通信的接口。我已经有一个工作的控制器/行动。如果我需要在请求中向php发送数组,那么与jQuery通信的最佳方式是什么。
例如: 满足请求所需的数据:
$request_data = array
(
'key1' => 'value1',
'list1' => array
(
'listkey1' => 'listvalue1',
)
)
我应该发送不同的“正常”后请求,还是更容易发送一个post-var与json编码的数组? ($ post_json =“{key:value ....})
重点是在jquery中轻松集成
编辑:它不是关于将数据传递给客户端,而是将数组从客户端传递到php脚本
答案 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'];