Преобразование объекта JSON в массив PHP - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь преобразовать объект JSON в массив PHP для моего сценария PHP, но постоянно получаю сообщение об ошибке, в котором json_decode ожидает, что 1 параметр будет строкой, а массив задан. Я попытался сериализовать, tringify и json_encode сценария, но ничего не работает. Мой сценарий

<script>
$(document).ready(function(){
  $('form[id=ajax]').submit(function(event){
  event.preventDefault();

  //var form_data = $(this).serialize()
  var form_data = { 
      submit: $('input[name=submit]').val(),
      id: $('input[name=id]').val(),
      name: $('input[name=name]').val(),
      price: $('input[name=price]').val(),
      quantity: $('input[name=quantity]').val()
      };

  var json = json_encode(form_data);
    //console.log($json)
  $.ajax({
      url : 'test.php',
      type: 'POST',
      data : json
  });
 });
});
</script>

1 Ответ

0 голосов
/ 27 июня 2018

Вы делаете это неправильно, вам нужно добавить JSON.stringify, вместо этого вы добавляете json_encode, которая является функцией php для кодирования массива в строку JSON, а вы отправляете объект JSON, а не строку JSON ваш php скрипт.

<script>
$(document).ready(function(){
  $('form[id=ajax]').submit(function(event){
  event.preventDefault();

  //var form_data = $(this).serialize()
  var form_data = { 
      submit: $('input[name=submit]').val(),
      id: $('input[name=id]').val(),
      name: $('input[name=name]').val(),
      price: $('input[name=price]').val(),
      quantity: $('input[name=quantity]').val()
      };

  var json = JSON.stringify(form_data);
    //console.log($json)
  $.ajax({
      url : 'test.php',
      type: 'POST',
      data : json
  });
 });
});
</script>

для дальнейшего чтения JSON.stringify

...