2017-02-17 18 views
0

私は、イムは、機能、クライアント - サーバコールPHPのコントローラ機能

PHP

public function mainViewClean() { 


     unset($_SESSION[$this::jsondevices]); 
     unset($_SESSION[$this::jsontags]); 
     return "Ready"; 
    } 
//route $route['cleantags']  = 'user/mainViewClean'; 

とAJAXコールするAjaxとCodeIgniterのでの作業:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#btn_recargar").button().click(function(){ 

      //window.location.href = "<?= base_url('home')?>"; 
      $.ajax({ 
       type:'POST', 
       url:'<?php echo base_url("cleantags"); ?>', 
       data:{'id':100}, 
       success:function(data){ 
       //window.location.href = "<?= base_url('home')?>"; 
        alert(data); 
       } 
      }); 

    }); 
}); 
</script> 

機能の言い訳を良い、しかしjavascriptは何のデータを表示しない、何が間違っている?

答えて

1

変更return

echo "Ready"; 

あなたは配列を送信する場合、サーバー側で、あなたがjson_encodeする必要があり、例:

// encode array into json string format 
echo json_encode(array('name' => 'Osman')); 

とJSで、あなたは2つのオプションを持っています、

success : function (data) { 
    // data now is coming in this form { "name" : "osman" } 
    // as the string data is coming from server-side 
    // you must parse it back into Javascript object 
    var newData = JSON.parse(data); 
} 

そして、第二の選択肢は、を追加している:第一ソリューションです次のようなAJAXのプロパティ内部のプロパティ:

$.ajax({ 
    ... 
    dataType : 'json', // with this, no need to write JSON.parse() 
    ... 
}); 
+0

ありがとう、私はオブジェクトを送信する必要がある場合、私は正しいエンコードが必要ですか? –

+0

はい、あなたは –

+0

感謝のためにあなたが 'id'、ちょうど'データを必要としない歓迎メイト –

2

まあ、AJAX呼び出しは、サーバからの応答を読み取り、その応答は、このようなapplication/jsontext/htmlとして、読み取り可能なデータのいくつかのタイプとしてレンダリングする必要があります。

そのデータを書き込むためには、あなたは、PHPを使用してサーバからそれをechoする必要があります。

return文がデータを書き込むことはありません、それは単にサーバーレベルで返します。

あなたがPHP関数間で通信したい場合は、returnを使用する必要があります。あなたは出力にいくつかのデータが必要な場合はしかし、あなたが使用する必要がありecho

クライアント側

$.ajax({ 
      url:'<?php echo base_url("cleantags"); ?>', 
      dataType: 'application/json', 
      success:function(response) 
      { 
        alert(response.foo); 
      } 
     }) 

サーバー側

public function mainViewClean() 
    { 
     unset($_SESSION[$this::jsondevices]); 
     unset($_SESSION[$this::jsontags]); 
     echo json_encode(array("foo"=>"Ready")); 
    } 
0

私だけだったように私はかなり新しいですAJAXを使っていますが、あなたのコードに構文上の誤りがあると思います。

  • データ:{id:100} idの周りに引用符を付けずに。

これらの小さなエラーを修正するためのajax呼び出しの例をもっと見る必要があります。

あなたのJSが動作しますが、データが表示されないと?

+1

引用している更新の答えを参照してください:{ID:100} '十分です、と' .button() '関数はの一部であります'Jquery UI'。 –

+0

True要素をクリック可能なボタンに変更します。ドキュメントで検索して見つけました – nivanmorgan