2013-09-25 23 views
1

我想用複選框創建動態地圖來自定義地圖上的標記。 當然,我使用Ajax爲,好吧,我想用它:)如何使用CodeIgniter正確傳遞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; 
    } 

問題是,在JSON變量在JS我得到了JSON從PHP,但我也得到了頁面的所有DOM? 這是爲什麼?我怎麼才能得到我的JSON?

+3

只要把'退出()''後回聲$ new_JSON;'但仍if語句裏面。它會停止頁面發送任何進一步的響應。 – Archer

+0

試試這個'echo $ new_JSON; die();' –

+0

你檢查了什麼是你的$ this-> listing_lib-> getJsonFromYelp($ unsigned_url)的響應。 ? –

回答

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 
    } 
    }); 
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); 
} 

這應該會更好。

0

請試試這個

$("input[type=checkbox]").click(function() { 
     var data = $(this).val(); 
     var request = $.ajax({ 
     type: "POST", 
     url: "<?php echo site_url(current_url());?>", 
     data: "categorie=" + data, 
     dataType:"json", 
     success:function(response){ 
     alert(response); 

     } 
}); 

和控制器

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); 
    print json_encode($new_JSON); 
} 

我希望這會幫助你。

+0

它確實有幫助,但我仍然在響應中獲得DOM ... – Xavier

+0

哪些DOM得到了迴應。你說過你使用相同的函數來加載這個頁面?你是否獲得了自己網頁的DOM或響應鏈接的DOM,即「http://api.yelp.com/v2/search?location=」。 $ data-> home ['city'] ['cities_name']。 「&category_filter =」。 $類; –

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); 
    } 
+0

這不會返回任何... – Xavier

+0

對我來說它工作正常。但我在控制器中使用這個代碼 –

相關問題