2011-07-26 120 views
0

我一直在努力解決這個問題。我無法通過互聯網找到任何解決方案。將數組傳遞給php頁面

此代碼的一部分:

var params = "nome=" + encodeURI(document.getElementById("nome").value)+ 
"&email=" + encodeURI(document.getElementById("email").value)+ 
"&telefone=" + encodeURI(document.getElementById("telefone").value)+ 
"&produto=" + encodeURI(document.getElementsByName("produto[]"))+ 
"&quantidade=" + encodeURI(document.getElementsByName("quantidade[]"))+ 
"&msg=" + encodeURI(document.getElementById("msg").value); 
xmlhttp.open("POST", url, true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.setRequestHeader("Content-length", params.length); 
xmlhttp.setRequestHeader("Connection", "close"); 

「produto」 和 「quantidade」 是數組,從一種形式的到來。如何將這個值傳遞給我的PHP頁面(我想通過電子郵件發送內容)。

使用jQuery的serialize()功能將把你的陣列成一個字符串謝謝 聖保羅

+0

HTML表單沒有數組。你能詳細說明你正在努力完成什麼,也許向我們展示你的HTML? – Hubro

+0

如果他們複選框,它可以被傳遞給PHP作爲一個數組我相信 –

+0

什麼是有名字的表單元素'produto []'和'quantidade []' –

回答

2

傳遞到你的服務器

$('[name=produto]').serialize() 

http://api.jquery.com/serialize/

+0

更容易讓jQuery的處理形式序列化/ AJAX比嘗試推出自己的東西。 +1。 –

+0

這很棒,使用序列化使它變得簡單!真棒,我的應用程序現在像一個魅力。謝謝你們的回覆。 – Paulo

0

我簡要地記得,如果你這樣做: (這也是jQuery的連載作品)

var myArrayToPost = [1, 2, 3]; 
var postString = ""; 
for(<-- Iterate over myArrayToPost -->) { 
    postString += "MyArray[]=" + value + "&"; 
} 
<-- Post postString --> 

基本上你想要的帖子是這樣的:

"MyArray[]=FirstValue&MyArray[]=SecondValue&MyArray[]=ThirdValue" 

然後PHP會自動把該進$_POST一個數組,所以你可以得到它:

$_POST['MyArray'] // which will equal 
        // array(
        // 'FirstValue', 
        // 'SecondValue', 
        // 'ThirdValue' 
        //); 
0

當您在HTTP請求中傳遞參數,它們中的每一個都是一對值=值,所以produto = 1是一個參數produto,其值爲1。若要從HTTP請求必須建立幾個參數名稱相同,像produto採取「陣列」 = 1個& produto = 2 & ......

我parece闕之聲é巴西陸軍,então奧鋼聯和葡萄牙語

quando VOCE帕薩parâmetrosPELO http請求,ELES聖保羅montados EM剝諾姆=勇氣,entãoproduto = 1é微米parâmetroproduto COM勇氣1.硒precisar passar VARIOS VALORES對UMAvariável,simulando嗯縮放的矢量,蒙查詢COMÔmesmo諾姆devariávelváriasvezes:... produto = 1 & produto = 2 e assim por diante ...

abraços

+0

Ademir,acabei optando pelo「serialize」,muito simples e funcional,obrigado。 – Paulo

+0

Nãoconhecia estasolução,creio que vou adotartambém,abraçosPaulo。 –