Передача массивов на страницу php - PullRequest
0 голосов
/ 26 июля 2011

Я изо всех сил пытался решить эту проблему.Я не смог найти никаких решений по Интернету.

Это часть кода:

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 (я хочу отправить контент по электронной почте).

Спасибо, Пауло

Ответы [ 3 ]

2 голосов
/ 26 июля 2011

с помощью jquery функция serialize() превратит ваш массив в строку для передачи на ваш сервер

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

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

0 голосов
/ 26 июля 2011

Когда вы передаете параметры в запросе http, каждый из них представляет собой пару имя = значение, поэтому produto = 1 - это параметр produto с 1 в качестве значения. Чтобы получить «массив» из http-запроса, вы должны создать несколько параметров с одинаковым именем, например, produto = 1 & produto = 2 & ...

Me parece que vocé é brasileiro, então vai em Português

quando voê passa parâmetros pelo http request, eles são montados em pares nome = valor, então produto = 1 u par parmetro produto comvalor 1. Вы можете указать, сколько вам нужно, чтобы измениться, вы можете попросить об этом. Вы не знаете, сколько вам нужно: ... = 1 & produto = 2 e assim por diante ...

Abraços

0 голосов
/ 26 июля 2011

Я кратко помню, если вы сделаете это: (это также, как работает jQuery serialize)

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'
                  // );
...