2017-01-17 13 views
0

このコードを何度も試してみましたが、まったく動作していないようです。アプリケーションで選択したjqueryを使用しています。PHPのAJAXポストでNull値を取得する

$(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の値を見ることができるネットワーク]タブ上のFirefoxでそれをデバッグするのですが、応答]タブにはNULLを返します。ほぼ一週間の問題です。

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

の$ _POST、Eを清掃することを忘れないでください:私はあなたが$ _POSTからの配列を読み取る必要があるAJAX

+0

あなたが試した他の何か: 'echo json_encode($ _ POST ['data']); ' – C2486

+0

あなたの質問は、大いに役立つ詳細が欠けています。あなたの質問には、あなたの問題が何であるか、Ajaxが返すものを明示的に説明する必要があります。しかし、PHPのresult関数を見てください。関数のスコープ内にない変数にアクセスしようとしているため、実際にはJSON_Encodeにデータは渡されません。これにより、json_encodeはデータを返しません。これはおそらくあなたの問題ですが、それ以上の情報がなければ、言うことは難しいです。 –

答えて

1

に新たなんだので、私はそれを解決するためにどのように任意のアイデアを持っていません。 g。 filter_input

関連する問題