0

我一直在努力解决这个问题。我无法通过互联网找到任何解决方案。

这是代码的一部分:

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 页面(我想通过电子邮件发送内容)。

4

3 回答 3

2

使用 jquery 该serialize()函数会将您的数组转换为字符串以传递给您的服务器

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

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

于 2011-07-26T19:44:39.727 回答
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'
                  // );
于 2011-07-26T19:50:23.283 回答
0

在http请求中传递参数时,每一个都是一对name=value,所以produto=1就是一个参数produto,其值为1。要从 http 请求中获取“数组”,您必须构建多个具有相同名称的参数,例如 produto=1&produto=2& ...

于 2011-07-26T19:57:11.180 回答