2015-05-29 2 views
4

Что я хочу сделать, так это отправить массив Java в файл PHP.
Это то, что я получил:отправить массив JavaScript через jQuery AJAX POST

var mydata = []; 
     console.log(document.getElementsByTagName("input")[0].name); 
     for (var i = 0; i < document.getElementsByTagName('input').length; i++) { 
      mydata[document.getElementsByTagName("input")[i].name] = document.getElementsByTagName("input")[i].value; 
     }; 
     for (var i = 0; i < document.getElementsByTagName('select').length; i++) { 
      mydata[document.getElementsByTagName("select")[i].name] = document.getElementsByTagName("select")[i].value; 
     }; 
     console.log(mydata); 

     $.ajax({ 
      method: "POST", 
      url: "q.php", 
      data: {'lol': JSON.stringify(mydata)}, 
      contentType: 'application/json', 
      dataType: 'json' 
     }) 
     .done(function(msg) { 
      alert("Data Saved: " + msg); 
      $('#debug').html(msg); 
     }); 

Так как вы можете видеть, я создаю массив с петлей, в этот момент все в порядке. Проблема в том, что я пытаюсь отправить его через POST с помощью JSON. Я не знаю, если это лучший способ ...

Я попытался без JSON.stringify(); но $_POST еще пуст

Похоже, что пост не послал, но я могу видеть в консоли XHR отправленный запрос отправлен.

+0

Вы сказали: «но такая же ошибка возникает». Какая ошибка? Можете ли вы предоставить сообщение об ошибке? –

+0

Подсказка, которую вы видите, содержит данные, которые вам нужны? Я думаю, что JSON.stringify не требуется. вы получаете ошибку ответа или ошибку javascript? – ecarrizo

+0

** РЕДАКТИРОВАТЬ ** $ _POST пуст, я попытался использовать JSON.stringify, но он все еще пуст. – wwwanaya

ответ

3

Попробуйте использовать этот код и просмотреть изменения.

удалить contentType: 'application/json', dataType: 'json'

И изменить var mydata = [] в var mydata = {}

ваш AJAX должен выглядеть следующим образом

 
     $.ajax({ 
      method: "POST", 
      url: "q.php", 
      data: {'lol': mydata} 
     }) 
     .done(function(msg) { 
      alert("Data Saved: " + msg); 
      $('#debug').html(msg); 
     }); 

Вы не должны stringify ваши MyData, потому что вы уже decleared его в качестве объекта.

Надеюсь, это поможет

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