2017-07-22 41 views
1

我想獲得每個結果的關鍵。 我有一個輸入字段,我在其中傳遞關鍵字。在這裏在這個控制器中,我正在檢查城市的每個關鍵字,如果它包含城市名稱,那麼我會做我的東西。但我怎樣才能區分他們兩個不同的關鍵。如何使用密鑰在ajax codeigniter中的鍵json數據

這裏$數據數組有城市和建議鍵,我想要訪問這個在Ajax中。

像這個 -

$數據[ '結果] [' 城市 '] = ...

$數據[' 結果] [ '建議'] =

控制器

function autoshow() { 
     $data = array('result' => array(),'url' => array(), 'exp' => array()); 
     $keyword = $this->input->get('search'); 
     $search = $this->Mdl_home->get_auto_complete($keyword); 

     $explode = explode(' ', $keyword); 

     //Here i am checking if keyword has city name or 
     foreach ($explode as $cityname) { 
      $data['result']['city'] = $cityname; 
     } 

     foreach($search as $row) { 
      $usrch[] = $row->service_name; 
      $data['result']['suggesition'] = $usrch; 
      //Here i am using url to access this in the ajax 
     } 

     if (!isset($data)) { 
      $data = ""; 
     } 
     $this->output->set_content_type('application/json'); 
     echo json_encode($data); 
    } 

我在這裏試圖用訪問中控制器

$.each(data.result, function (i, obj) { 
autoData += "<li><a id='" 
        + obj['suggesition'] 
        + "' href='javascript:void(0);'>" 
        + obj['suggesition'] 
        +(obj['city']) ? obj['city'] : " " 
        + "</a></li>"; 
}); 

autoData += "</ul>"; 
$("#s_auto").html(autoData); 

定義鍵名是我的嘗試: 這是給我不確定。我知道$ .each循環中肯定存在一些問題。 如何訪問這樣的關鍵$ OBJ [「關鍵」] .. 我不知道如何做到這一點..Please看到這個代碼

如果我從$.each(data.result, function (i, obj)從這個刪除結果和只需我可以訪問密鑰obj ['key']它的工作原理,但我有不同類型的多種數據類型。所以要訪問這些鍵..

如果我這樣做是錯誤的,請告訴我。或任何類型的建議謝謝..

這是在控制檯顯示的結果。搜索關鍵字「ho」後

{"result":{"city":"","suggesition":"7 Star Hotels"},"suggesition":[]} 
+0

可以顯示Ajax響應數據的console.log(數據)的示例數據; – JYoThI

+0

我只是更新我的控制檯數據 –

+0

我認爲數據準備有問題。你應該在結尾看到確切的'$ data'結果。因爲循環訪問'data.result'結果應該包含像'{「result」:[{city:「city1」,suggestion:「suggestin」},{city:「city2」,suggestion:「suggestin2」} ]}' – jagad89

回答

1

您在每次迭代中覆蓋相同的$data['result']['suggesition']

爲了作出書面你需要這樣的東西的JavaScript工作:

foreach($search as $row) { 
     $res = array(
      'suggesition'=> $row->service_name, 
      'city' => // ?? I don't understand city logic 
      ); 

     // add new item to `$data['result']` array 
     $data['result'][] = $res; 

} 
+0

謝謝你..我知道城市邏輯不應該在那裏。但我只是問,如果我爆炸的關鍵字,然後如果ii運行一個foreach,以確定我的關鍵字是否包含城市名稱或不..這是一個正確的方式.. –

+0

可能,取決於發送什麼。你將不得不比較每一個東西,雖然作爲一個城市驗證。還取決於你的數據庫查詢是如何進行的 – charlietfl

相關問題