【发布时间】:2014-03-25 20:15:11
【问题描述】:
此问题源于this thread。
我已按照下面的答案进行操作,但在将对象传递给 PHP 时遇到了问题。我认为这只是一个小问题,但我找不到它。
我的 ajax 调用
$('.actResult').click(function() {
var result = {};
$('.actResult tr').each(function(){
var $tds = $(this).find('td');
result[$tds.eq(0).html()] = $tds.eq(1).text();
});
console.log(result);
$.ajax({
type: 'get',
url: 'userpage.php',
data: result
});
$('.FindResults').dialog("close");
});
在 userpage.php 中,我使用的是这个:
echo '<div id="data"><pre>', var_dump($_GET), '</pre></div>';
我可能需要使用 stringify 或 json_decode,但 this source 告诉我进行 ajax 调用就足够了。
输出给了我一个
array(0){
}
这很奇怪。该数组打印到控制台中,因此可以正确生成。控制台还告诉我 ajax 执行成功。我使用 $_GET 只是因为 $_POST 已经有很多变量,因此检查 $_GET 是否有此请求会更容易。
更新:
从下面的 cmets 来看,当查询成功时,ajax 调用不会做任何事情。所以我改变了电话:
$.ajax({
type: 'get',
url: 'userpage.php',
data: result,
success: function(){
$('#data').text( data );
}
});
还有 PHP
echo '<input type="text" id="data" /><pre>', var_dump($_GET), '</pre>';
我尝试使用 div 而不是文本框。结果仍然是 array(0){}
【问题讨论】:
-
什么不起作用?
-
@undefined
echo可以接受多个参数,以逗号分隔。这相当于将它们连接成一个字符串并将它们作为单个参数传递。见php.net/echo -
我得到一个数组 (0){} 结果。是的,我喜欢回声。对于字符串变量,我使用
. -
@markovchain 您正在构建一个 javascript 对象而不是数组。
-
您在哪里看到 PHP 的输出?
$.ajax调用似乎没有响应回调。如果您使用浏览器的开发工具(或 Firebug 或类似工具),您能否看到请求 URL 构造正确?
标签: javascript php jquery ajax arrays