2013-10-24 55 views
0

我有一個與jQuery和PHP的自動建議代碼,問題是jquery發送ajax請求,瀏覽器正在響應400(壞請求)
問題是查詢應該有已經產生像jquery autosuggest創建錯誤的url請求

http://localhost/abc/index.php?/controller/autoComplete**?q=a**&limit=5&timestamp=1382 

但像

http://localhost/abc/index.php?/controller/autoComplete **&q=a**&limit=5&timestamp=1382 

自動完成功能生成的請求是像

$.fn.extend({ 
autocomplete: function(urlOrData, options) { 
var isUrl = typeof urlOrData == "string"; 
options = $.extend({}, $.Autocompleter.defaults, { 
    url: isUrl ? urlOrData : null, 
    data: isUrl ? null : urlOrData, 
delay: isUrl ? $.Autocompleter.defaults.delay : 10, 
max: options && !options.scroll ? 5 : 5 
}, options); 

具有文本字段ID爲調用該函數在視圖中的代碼=「搜索」

$(document).ready(function(){ 
    $("#search").autocomplete("<?php echo "http://localhost/abc/index.php?/controller/autoComplete"; ?>", { 
     selectFirst: true 
    }); 
}); 

凡自動完成是在控制器
的函數I在的config.php中作出的變更我我改變代碼點火器

$config['index_page'] = 'index.php?'; 
+0

嘗試放置一個反斜槓(\)之前?當您連接或者您也可以執行http://localhost/abc/index.php?/ controller/autoComplete \\「;末尾的兩個反斜槓 –

+0

未捕獲的SyntaxError:意外的令牌ILLEGAL,包含反斜槓的行 –

+0

如果它是一個完整的PHP字符串,你可以使用str_replace來代替&q?q,只是猜測 –

回答

0

我猜這個網址的格式是這樣的,因爲你已經有一個?登錄你的網址。其他參數將與&符號分開

+0

我明白,有人可以告訴如何糾正這個問題嗎? –

+0

從?<?php echo「http:/ /localhost/abc/index.php?/controller/autoComplete「;?>'line會解決它。當你發佈數據到index.php時,URL會變成'localhost/abc/index.php?q = a&limit = 5&timestamp = 1382'。我想你也可以使用'localhost/abc/controller/autoComplete?q = a&limit = 5&timestamp = 1382'? – redelschaap

+0

如果我沒有'?'與index.php然後我的godaddy服務器說沒有輸入文件指定 –

0

您是否嘗試使用**反斜槓**?

$(document).ready(function(){ 
    $("#search").autocomplete("<?php echo "http://localhost/abc/index.php\?/controller/autoComplete"; ?>", { 
     selectFirst: true 
    }); 
});