如何在 jquery 中创建关联数组并通过 ajax 发送以使用 php 解析?
Posted
技术标签:
【中文标题】如何在 jquery 中创建关联数组并通过 ajax 发送以使用 php 解析?【英文标题】:How do I create an associate array in jquery and send it via ajax to get parsed with php? 【发布时间】:2011-03-30 17:59:21 【问题描述】:我将如何在 jQuery 中创建一个关联数组(或一些类似的替代方法)并通过 ajax 将该数组发送到一个 php 页面,以便我可以使用 php 来处理它?
这样的……
// 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 src="<?PHP echo $_POST['src']; ?>" />
我已经对该主题进行了一些谷歌搜索,并了解到您无法使用 javascript 创建关联数组,因此我真的只是在寻找一些替代方案。提前致谢。
【问题讨论】:
【参考方案1】:您可以将数据作为对象传递给$.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)
将其转换为帖子,例如:
alt=thisAlt&src=thisSrc
或:
html=myEncodedHtml
【讨论】:
如何用 php 将这些回显出来? @Johnny - 就像您已经在问题中提出的那样,例如$_POST['alt']
【参考方案2】:
只是发送一些json到php端,然后使用php中的json_decode函数在php端得到一个关联数组不是更简单吗?
【讨论】:
【参考方案3】:关联数组是一种 PHP 的东西。但是您可以通过花括号 () 获得类似的东西。事实上,您已经在 $.ajax()
通话中使用了它。注意“”部分。在这种情况下,您可以在 PHP 服务器中使用json_decode()
来解码 'data' 参数:
$.ajax(
url: myUrl,
data: foo: 0, bar: 1, baz: 2 ,
success: function() ,
dataType: 'json'
);
`
使用 json_decode() 会得到类似的结果:
php
array('foo' => 0, 'bar' => 1, 'baz' => 2);
【讨论】:
如何像上面的代码一样一次添加一个键/值? var 数据 = ;数据['foo'] = 0;以上是关于如何在 jquery 中创建关联数组并通过 ajax 发送以使用 php 解析?的主要内容,如果未能解决你的问题,请参考以下文章