我想通過用戶輸入表單jQuery/ajax但我無法從服務器獲取任何數據,而使用json_encode()方法PHP方。沒有使用Json之前,一切正常。我有點困惑如何獲取和顯示數據結果。我必須解碼嗎?如何在編碼Json之後獲取並顯示數據?
jQuery代碼:
$(document).ready(function() {
$('#keyword').keyup(function(event) {
event.preventDefault();
// Get input form
var keyword = $('#keyword').val();
var path = "<?php echo site_url('controller/suggestion'); ?>";
$.ajax({
url: path,
type: "POST",
data: { search: keyword },
success: function(data) {
console.log('>> Data: ', data);
}
});
}
});
PHP控制器:
public function suggestion() {
// Get the keyword from Ajax request
$keyword = strip_tags($this->input->post('search'));
if (isset($keyword) && !empty($keyword)) {
echo '>> Search Keyword: '. $keyword;
$this->tabResults = json_encode($this->model->findKeyword($keyword, 5));
//print_r($this->tabResults);
$data['searchResults'] = $this->tabResults;
$this->load->view('results', $data);
}
}
HTML:
<div id="container">
<div id="header">
<div class="search">
<form id="myform" method="post" action="film_controller/test">
<input type="text" name="keywordsearch" id="keyword">
<input type="submit" name="search" value="Search">
</form>
<div id="suggestionResult"></div>
</div>
</div>
</div>
我想補充數據類型: 「JSON」,並設置數據。搜索結果;
我在Firebug的控制檯錯誤: 「更新語法錯誤:200 「JSON.parse:意外的字符數據......」
$.ajax({
url: path,
type: "POST",
data: { search: keyword },
dataType: "json",
success: function(data) {
console.log('>> Data: ', data.searchResults);
},
error:function (xhr, textStatus, thrownError){
console.log(">> Update Error Status: ", xhr.status, "Error Thrown: ", thrownError);
}
});
在我的控制器:
public static $tabResults = array();
public function __construct() {
parent::__construct();
$this->tabResults = self::$tabResults;
}
public function suggestion() {
// Get the keyword from Ajax request
$keyword = strip_tags($this->input->post('search'));
if (isset($keyword) && !empty($keyword)) {
echo '>> Search Keyword: '. $keyword;
$this->tabResults = json_encode($this->film_model->findKeyword($keyword, 5));
print_r($this->tabResults);
$data['searchResults'] = $this->tabResults;
$this->load->view('results', $data);
}
}
JSON的只是封裝本地數據結構到一個普通字符串的方法,使用(J)ava(S)cript(O)對象(N)選擇。你的PHP數據結構被轉換成一個JSON字符串,這個jQuery會轉換成一個本地的JavaScript等價結構。 –
如何在HTML文件中將其轉換爲Json字符串後調用我的PHP數據結構($ this-> tabResults)? – qpixo