Как отформатировать массив в посте ajax - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть диалог, закодированный в php.При отправке я отправляю данные обратно в диалоговое окно для сохранения через ajax (я не хочу, чтобы диалоговое окно закрывалось).В основном это работает, но формат опубликованных данных не тот, который я хотел бы.Вот код ajax

    $('#but1').click(function() {  
      var apply_to = $("input[name='group-apply']:checked").val();
      var el = document.getElementById('multi-selector');
      var selected = GetSelectValues(el);

      var data = [];
      data[0] = 'apply-to:'+ apply_to;
      data[1] = 'selected:' + selected;
      data = {data};         

       $.ajax({
            url : "example.php",
            type: "POST",
            data : data,
            success:function(result){
              $("#form-container").html(result);
            }
       });
    });   

Когда вышеприведенное выполнено, php в диалоговом окне отображает это

    Array
    (
        [data] => Array
            (
                [0] => apply-to:Include
                [1] => selected:8,9,5,1
            )

    )

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

    $_POST['data'][0]

Я бы хотел, чтобы данные отображались следующим образом

    Array
    ( 
        [0] => apply-to:Include
        [1] => selected:8,9,5,1
    ) 

или, в идеале:

    Array
    ( 
        [apply-to] => Include
        [selected] => 8,9,5,1
    ) 

Кто-нибудь, пожалуйста, объясните, как это сделать, есливозможно?

Ответы [ 3 ]

0 голосов
/ 25 декабря 2018

Попробуйте использовать его

$('#but1').click(function() {  
  var apply_to = $("input[name='group-apply']:checked").val();
  var el = document.getElementById('multi-selector');
  var selected = GetSelectValues(el);

  var data = [];
  data['apply-to'] = apply_to;
  data['selected'] = selected;
  data = {data};         

   $.ajax({
        url : "example.php",
        type: "POST",
        data : data,
        success:function(result){
          $("#form-container").html(result);
        }
   });
}); 
0 голосов
/ 26 декабря 2018

вам нужно установить data как объект {}

Чтобы получить значение типа

Array
( 
    [apply-to] => Include
    [selected] => 8,9,5,1
)

, используйте

var data = {};
data['apply-to'] = apply_to;
data['selected'] = selected;
//data = {data}

и получите

Array
( 
    [0] => apply-to:Include
    [1] => selected:8,9,5,1
) 

использование

var data = {};
data[0] = 'apply-to:Include';
data[1] = 'selected:8,9,10';
//data = {data}
0 голосов
/ 24 декабря 2018

В вашем php-коде вы можете присвоить $ _POST ['data'] массиву

$myArray = $_POST['data'];

, тогда $ myArray должен быть равен

Array
( 
    [0] => apply-to:Include
    [1] => selected:8,9,5,1
) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...