[英]How to pass JS array via POST AJAX to PHP?
這是我的代碼:
var var_ids = new Array();
var i = 0;
jQuery("select").each(function() {
var_ids[i] = jQuery("option:selected",this).val();
i++;
}
var $data = {
action: "do_something",
var_ids: var_ids,
};
jQuery.post(doajax.ajaxurl, $data, function(response) {
alert(response);
});
在我的php中:
$ids = mysql_real_escape_string(trim($_POST['var_ids']));
exit(print_r($ids));
它只是返回垃圾...所以我的問題是如何通過AJAX傳遞數組以發布php?
謝謝。
因為將字符串相關的函數trim
和mysql_real_escape_string
應用於數組 $_POST['var_ids']
最有可能獲得意外結果
只要它只是一個整數數組-所需的唯一mysql清理是強制轉換為int:
$ids = array_map('intval', $_POST['var_ids']);
print_r($ids);
$ _POST ['var_ids']是示例中PHP端的數組。 您只能在字符串而不是數組上調用trim和mysql_real_escape_string。 嘗試在php中:
$postData = isset($_POST['var_ids'])?$_POST['var_ids']):null;
if(is_array($postData)){
foreach($postData as $key=>$value){
$postData[$key] = mysql_real_escape_string(trim($value));
}
}
Viola,$ postData現在是一個帶有修剪和轉義值的PHP數組。
在文檔中,大約有1/4的方式將標題數據數組傳遞給服務器
var var_ids = new Array('10','12','13');
var $data = {
action: "do_something",
'var_ids[]': var_ids,
};
jQuery.post(doajax.ajaxurl, $data, function(response) {
alert(response);
});
使它成為json_encoded數組...然后,您可以正確地對json_decode()數組。
您可以使用鍵items[]
來發布每個項目,然后可以以$_POST['items']
訪問數組,也可以序列化數組,發送並在PHP中進行JSON.stringify
序列化( JSON.stringify
和PHP json_decode
) 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.