2017-01-17 3 views
0

Я много раз пробовал отлаживать этот код, но он не работает вообще. Я использую выбранный jquery в своем приложении.Получение нулевых значений на пост AJAX в PHP

Вот мой код:

$(document).ready(function(){ 

var status = []; 
var method = $(this).attr('data-method'); 

var config = { 
    '.chosen-select'   : {}, 
    '.chosen-select-deselect' : {allow_single_deselect:true}, 
    '.chosen-select-no-single' : {disable_search_threshold:10}, 
    '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'}, 
    '.chosen-select-width'  : {width:"95%"} 
} 
for (var selector in config) { 
    $(selector).chosen(config[selector]); 
} 
    $("#test").chosen().change(function(e, params){ 

    console.clear() 

    $("#test :selected").each(function(i,selected) 
    { 

      status[i] = $.trim($(selected).text()); 
    }) 

console.log(status);  
var new_var = JSON.stringify(status); 

    $.ajax({ 
      type: "POST", 
      url: "<?php echo site_url('request/result') ?>", 
      data: { data: new_var } 
     }).done(function(data) { 
      alert("Data Send:"); 
     }).fail(function() { 
      alert("Data Not Sent"); 
     }); 
     e.preventDefault(); 

    }); }); 

new_var имеет значения массива, но я не могу опубликовать его значение в мой контроллер.

Контроллер: request.php

public function result(){ 
    echo json_encode($status);  
    die(); 
    } 

Я ее отладки на светлячок на вкладке сети я могу увидеть значения на Params, но на вкладке ответ она возвращает NULL я не могу показаться, чтобы решить проблема в течение почти недели. У меня нет никаких идей, как ее решить, потому что я новичок в AJAX

+0

Что еще вы пытались: например, 'echo json_encode ($ _ POST ['data']);' – C2486

+0

В вашем вопросе не хватает деталей, которые очень помогут. Ваш вопрос должен явно объяснить, какова ваша проблема и что вы ожидаете от Ajax. Однако посмотрите на свою функцию результата в PHP. Вы пытаетесь получить доступ к переменной, которая не входит в объем функции, и поэтому вы эффективно передаете JSON_Encode никаких данных. Это приведет к тому, что json_encode не вернет никаких данных. Это, скорее всего, ваша проблема, но без дополнительной информации, это трудно сказать. –

ответ

1

вам нужно прочитать от $ _POST массива:

public function result(){ 
    // Your variable is here: 
    var_dump($_POST['data']); 
    // echo json_encode($_POST['data']);  
    die(); 
} 

Пожалуйста, не забудьте очистки $ _POST, е. г. используя filter_input

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