此問題源自this thread。將這個javascript對象從jQuery傳遞給PHP?
我已經按照下面的答案,但有麻煩將對象傳遞到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>';
也許我可能需要字符串化或json_decode使用,但this source告訴我,這是不夠的做ajax電話。
輸出給我一個
array(0){
}
這是奇怪的。數組打印到控制檯中,以便正確生成。控制檯還告訴我,ajax已成功執行。我使用$ _GET只是因爲$ _POST已經有很多變量,所以檢查$ _GET來處理這個請求會更容易。
UPDATE:
從下面的評論,如果查詢成功的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,而不是一個文本框試了一下。結果仍然是數組(0){}
什麼是不工作? – Maximus2012
@undefined'echo'可以帶多個參數,用逗號分隔。這相當於將它們連接到一個字符串並將它們作爲單個參數傳遞。見http://php.net/echo – IMSoP
我得到一個數組(0){}的結果。是的,我爲回聲做。對於字符串變量,我使用'.' – markovchain