2012-01-16 2 views
0

У меня есть сценарий, который отправляет данные в PHP-скрипт:Ajax сообщение параметры

xhr.open("POST","processData.php"); 

И я посылаю раз часть данных ему:

xhr.send(email); 

Как бы после многократного peice из данные в скрипт php? Допустим, у меня есть первая и последняя переменная, которую я хочу отправить для обработки? Я пробовал это:

xhr.send (эссе, firstName);

Но не знаете, что с ним делать в скрипте PHP, я использую обычный $ _POST ['эссе'] для сбора значений? как насчет кодировки?

Спасибо вам за помощь.

ответ

3

Вы создаете объект, и отправить это:

var obj = { 
    essay: essay, 
    firstName: firstName 
}; 
xhr.send("data=" + JSON.stringify(obj)); 

На стороне сервера вы получаете:

json_decode($_POST['data']); //Gives you a standard object with fields essay and firstName 
+0

Так что же происходит, когда я использую json_decode ($ _POST [ 'данные']); в php? как получить первое имя и адрес электронной почты в разделительных переменных? не существует способа, которым я могу отправить обе части данных отдельно, как обычно в PHP? – ragebunny

+1

Есть, вы можете сделать: 'xhr.send (" essay = "+ JSON.stringify (эссе) +" & firstName = "+ JSON.stringify (firstName));'. Но, делая вышеизложенное, вы можете получить: $ result = json_decode ($ _ POST ['data']); 'и затем получить доступ к $ result-> эссе и' $ result-> firstName'. –

+0

Круто спасибо большое. Одна последняя вещь. Зачем кодировать? – ragebunny

2

просто создать строку запроса, чтобы пройти вдоль send()

xhr.send("essay=" + encodeURIComponent(essay) 
      + "&firstname=" + encodeURIComponent(firstName)); 

О encodeURIComponent вы можете увидеть th MDN reference: это может быть необходимо использовать это, если ваши переменные содержат необычные символы, такие как пробелы, амперсанд и другие

1

Использование JSON (JavaScript нотации Object):

http://www.json.org/

var data = new Object; 
data.name = 'some name'; 
data.id = 123 
xhr.send(JSON.stringify(data)) 

Вы можете превратить это в идентичный объект PHP с json_decode() , Двигатель JS на современных браузерах есть методы JSON встроенных, но старый IE (6, 7) нет, поэтому вам необходимо включить этот сценарий, чтобы компенсировать:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

Смежные вопросы