我如何在jQuery中创建一个关联数组(或一些类似的替代)并通过ajax将该数组发送到php页面,以便我可以使用php来处理它?</ p>
像这样......
// jQuery
if($something == true) {
data[alt] = $(this).attr('alt');
data[src] = $(this).attr('src');
else if ($something == "something else") {
data[html] = $(this).html();
}
然后,使用.ajax()函数发送此数组
// jQuery
$.ajax({
data: /* somehow send my array here */,
type: 'POST',
url: myUrl,
complete: function(){
// I'll do something cool here
}
});
最后,用php解析这些数据......
// php
<img alt="<?PHP echo $_POST['alt']; ?>" src="<?PHP echo $_POST['src']; ?>" />
我已经对这个主题进行了一些谷歌搜索,并且已经读过你不能用javascript创建一个关联数组,所以我真的只是在寻找一些替代方案。提前谢谢。
答案 0 :(得分:4)
您可以将数据作为对象传递给$.ajax()
,如下所示:
var data = {};
if ($something == true) {
data.alt = $(this).attr('alt');
data.src = $(this).attr('src');
}else if ($something == "something else") {
data.html = $(this).html();
}
$.ajax({
data: data,
type: 'POST',
url: myUrl,
complete: function(){
// I'll do something cool here
}
});
这将为帖子序列化,内部使用$.param(obj)
将其转换为POST,例如:
alt=thisAlt&src=thisSrc
或:
html=myEncodedHtml
答案 1 :(得分:0)
将一些json发送到php端是不是更简单,然后使用php中的json_decode函数来获取php端的关联数组?
答案 2 :(得分:0)
关联数组是PHP的东西。但你可以通过花括号({})得到类似的东西。事实上,您已经在$.ajax()
电话中使用了它。注意'{}'部分。在这种情况下,您可以在PHP服务器中使用json_decode()
来解码'data'参数:
// jquery
$.ajax({
url: myUrl,
data: {
foo: 0,
bar: 1,
baz: 2
},
success: function() {
},
dataType: 'json'
});
使用json_decode()会得到类似的结果:
// php
array('foo' => 0, 'bar' => 1, 'baz' => 2);