[英]How to pass an array of strings from PHP to Javascript using $.ajax()?
我有一個從數據庫中檢索名稱(字符串)的 PHP 腳本。 我想使用 $.ajax() 將此數組傳遞給 Javascript。 我無法理解我應該如何在 PHP 中對數組進行編碼,然后在 Javascript 中對其進行解碼。 有人可以為此提供示例代碼嗎? 非常感謝 !!
<?php // test.php
$myArray = array(1, 2, 3);
echo json_encode($myArray);
?>
HTML文件:
$(function() {
$.getJSON('http://localhost/test.php', function(data) {
$(data).each(function(key, value) {
// Will alert 1, 2 and 3
alert(value);
});
});
});
你可以使用json_encode
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
您可以在以下位置閱讀完整示例:
http://www.prodevtips.com/2008/08/15/jquery-json-with-php-json_encode-and-json_decode/
或者
http://www.prodevtips.com/2009/12/09/multiple-select-lists-with-jquery-and-json/
<?php
echo json_encode(array('key' => 'value', 'cool' => 'ice'));
?>
json 是一個 javascript 對象。 所以沒有必要“解碼”它。 但是,看起來您正在使用 jquery。 有一個用於檢索 json 數據的漂亮函數:
jQuery.getJSON(url, senddata, function(returndata){alert(returndata.cool);})
或者
jQuery.getJSON(url, senddata, function(returndata){mybigfunction(returndata);})
mybigfunction(data)
{
myvar = data.cool;
alert(myvar);
}
http://api.jquery.com/jQuery.getJSON/
或者你也可以像你提到的那樣用 $.ajax 來做:
jQuery.ajax({
url: url,
dataType: 'json',
data: senddata,
success: function(data){mybigfunction(data)}
});
mybigfunction(data)
{
myvar = data.cool;
alert(myvar);
}
http://api.jquery.com/jQuery.ajax/
“回調”是一個函數,它被調用並傳遞從 url 返回的 json 數據。
你會'冰'寶貝......呃......對不起玉米。
getJSON 方法相當簡短且方便。 查看鏈接了解更多詳情。
為此,您只需將一個腳本回顯到包含您的數據的 PHP 頁面中,然后您就可以從頁面上的任何其他 Javascript 訪問該頁面,包括 jQuery 和 .ajax()。
同樣,如果您只想通過 AJAX 調用傳遞它,只需使用 json_encode():
<?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>
然后使用.ajax()
的回調函數處理它,或者更好的是.getJSON()
,它專為這種用途而構建。
我保證我不僅在這里發垃圾郵件,而且我寫了一篇關於在 Javascript 和 PHP 之間傳遞變量的文章,因為我經常這樣做,所以我想出了一種簡單/可靠/干凈且可重用的方法來做到這一點。 如果您經常將數據從 PHP 傳遞到 Javascript 並且不需要 AJAX,我將在此處粘貼要點:
在每個外部 js 文件的頂部,我添加了關於需要哪些 PHP 變量的注釋,這樣我就可以在包含它時跟蹤我需要的內容(這是可選的,當然,但很好):
/* This script depends on the following variables in phpvars:
groupidlist
groupnamelist
serverurl
uid
*/
然后,在 PHP 文件中,我用一行 Javascript 傳遞所需的變量,為一個 JSON 數組分配所有需要的值。 PHP 中的示例,直接來自我的代碼:
<script type="text/javascript">
var phpvars = <?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>;
</script>
一旦設置完成,我就可以通過phpvars
數組簡單地訪問我在 Javascript 中需要的任何 PHP 變量。 例如,如果我需要使用我的 serverurl 設置圖像源,我可以執行以下操作:
imgElement.src = phpvars.serverurl + '/images/example.png';
因為它使用 JSON,所以不必擔心通過嘗試插入 PHP 變量來確保您不會在 Javascript 中搞砸任何事情。 變量的編碼/解碼由內置的 JSON 函數在兩端處理,因此很難破壞它,並且傳遞變量是無腦的 - 您可以像傳遞任何其他 PHP 數組一樣傳遞它們。 在導致此問題的擺弄中,我在這兩個方面都遇到了問題,而此解決方案很好地解決了這些問題。
這是 PHP 文件代碼
<?php
$array = array(1, 2, 3);
echo json_encode($array);
?>
然后你可以像這樣在你的$.ajax()
解析$array
success: function (data) {
var x = JSON.parse(data);
console.log(x);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.