2017-01-17 3 views
0

Ich habe so viele Male versucht, diesen Code zu debuggen, aber es scheint überhaupt nicht zu funktionieren. Ich verwende ausgewählte jquery für meine Anwendung.NULL-Werte auf AJAX-Post in PHP

Hier ist mein Code:

$(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(); 

    }); }); 

Die new_var hält die Werte Array, aber ich kann den Wert auf mein Controller senden.

-Controller: request.php

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

ich es auf der Registerkarte Netzwerk auf firefox bin Debuggen i Werte auf params aber auf der Registerkarte Antwort sehen gibt es NULL Ich kann das zu lösen scheinen Problem für fast eine Woche. Ich habe keine Ideen, wie es zu lösen, weil ich neu bin auf AJAX

+0

was Sie noch ausprobiert haben: wie 'echo json_encode ($ _ POST ['data']);' – C2486

+0

Ihre Frage fehlt Details, die sehr helfen. Ihre Frage muss explizit erklären, was Ihr Problem ist und was Sie erwarten, dass Ajax bitte zurückkehrt. Sehen Sie sich jedoch Ihre Ergebnisfunktion in PHP an. Sie versuchen, auf eine Variable zuzugreifen, die nicht im Gültigkeitsbereich der Funktion enthalten ist, und übergeben JSON_Encode keine Daten. Dies führt dazu, dass json_encode keine Daten zurückgibt. Dies ist wahrscheinlich Ihr Problem, aber ohne weitere Informationen, ist es schwer zu sagen. –

Antwort

1

Sie von $ _POST Array lesen müssen:

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

Bitte denken Sie daran, $ _POST, e Reinigung. G. mit filter_input