1

マップ上のマーカーをカスタマイズするチェックボックスを使用して動的マップを作成したいと考えています。もちろん、私はそのためにAjaxを使用しています。それを使用したいと思います:)

私の ajax 呼び出しは問題ありません。ビューからコントローラーに次のようにデータを渡します。

$( "input[type=checkbox]" ).click(function() {
  var data = $(this).val();
  var request = $.ajax({
  type: "POST",
  url: "<?php echo site_url(current_url());?>",
  data: "categorie=" + data,
});
request.done (function(data){
  var json = data;
  // Remove the markers and add new ones

データをコントローラーに渡し、このように扱います

    if ($this->input->is_ajax_request()) {
        $category = $_POST['categorie'];
        $unsigned_url = "http://api.yelp.com/v2/search?location=" . $data->home['city']['cities_name'] . "&category_filter=" . $category;
        $new_JSON = $this->listing_lib->getJsonFromYelp($unsigned_url);
        echo $new_JSON;
    }

問題は、JS の json 変数で、PHP から JSON を取得しましたが、ページのすべての DOM も取得したことです。どうして ?JSON のみを取得するにはどうすればよいですか?

4

4 に答える 4

0

json を出力する前に、出力タイプと出力を設定してみてください。

    if ($this->input->is_ajax_request()) {
            $category = $_POST['categorie'];
            $unsigned_url = "http://api.yelp.com/v2/search?location=" 
            .$data->home['city']['cities_name'] . "&category_filter=" . $category;

            $new_JSON = $this->listing_lib->getJsonFromYelp($unsigned_url);
            $this->output->set_content_type('application/json'); 
            $this->output->set_output($new_JSON);  
    }
于 2013-09-25T11:36:38.790 に答える
0
 $( "input[type=checkbox]" ).click(function() {
    var data = $(this).val();
    $.ajax({
      type: "POST",
      url: "<?php echo site_url(current_url());?>",
      data: {"categorie":data},
      dataType:"json",
      cache: false
      success: function (categorie) {
        /// your code for show category
     }
    });
于 2013-09-25T11:10:06.827 に答える
0
if ($this->input->is_ajax_request()) {
    $category = $_POST['categorie'];
    $unsigned_url = "http://api.yelp.com/v2/search?location=" . $data->home['city']['cities_name'] . "&category_filter=" . $category;
    $new_JSON = $this->listing_lib->getJsonFromYelp($unsigned_url);
    header('Content-type: application/json');
    print_r json_encode($new_JSON);
}

これはより良いはずです。

于 2013-09-25T11:21:28.043 に答える