2016-09-17 49 views
1

我有一個數組從某個輸入值做出與jQuery得到這樣序列化一個AJAX陣列

var ingredient = []; 
text.each(function(){ 
    ingredient.push($(this).val()); 
}); 

,並與阿賈克斯發送這樣

$.ajax({ 
    url: "update_recipe.php", 
    type: "post", 
    data: ingredient, 
    dataType: "html", 
    success : function(code_html, statut){ 
     console.log(code_html); 
     console.log(statut); 
    }, 
    error : function(resultat, statut, erreur){ 
     console.log("La requête n'a pas aboutie..."); 
     console.log(resultat); 
     console.log(statut); 
     console.log(erreur); 
    } 
    }); 

但是當我需要得到與陣列PHP,$ _POST是NULL ...
你有一個想法,我怎麼發送這個數組?

感謝

+0

顯示您的PHP代碼,檢查ingredient'的'值與'console.log' –

+0

陣列的console.log是像[ 「2個oeufs」, 「125克德farine」, 「25日CL Lait的」 ,「1/2cuillèreÃcaféde sucre」,「1 cc de levure chimique」,「30 g de beurre fondu」,「1/2 cc de sel」,「1 cs d'eau de fleur d' oranger「] 而php只是var_dump($ _ POST) – Buck

回答

1

您可以創建具有 「鍵=值」 對的查詢字符串其中「key」是元素的name屬性值,而不是僅將值推送到數組。

var ingredient = ""; 

text.each(function(i) { 
    ingredient += this.name + "=" + this.value + (i < text.length ? "&" : ""); 
}); 
+0

它似乎是字符串不是由我的PHP腳本接收。 var_dump($ _ POST); display:array(0){} – Buck

+0

@Buck輸入元素是否具有'name'屬性? – guest271314

+0

現在,是的...正確的解決方案是名稱=「成分[]」謝謝:) – Buck

0

//使用Ajax

// JS

var data = $("#form :input").serializeArray(); 
data = JSON.stringify(data); 
post_var = {'action': 'process', 'data': data }; 
$.ajax({.....etc 

// PHP

$data = json_decode(stripslashes($_POST['data']),true); 
print_r($data); // this will print out the post data as an associative array 
+0

沒有真正需要發送爲json,jQuery將形成內部編碼數組 – charlietfl

+0

我可以用PHP解碼這個數組? – Buck

+0

是的,你可以做到這一點 – siddhesh