[英]AJAX in codeigniter doesn't find base URL
我的另一個問題是,代碼是否正確,我的AJAX請求會到達我的控制器嗎?
這是代碼上的相關部分:
我的觀點(我在POST表單上有此信息,因為我想在另一個表上發送數據):
<script> var base_url = <?php echo base_url(); ?> </script>
<label for="exampleInputEmail1">Apartament</label>
<select onchange="showUser(this.value)" name ="txtApartament1" class="form-control">
<?php foreach($getEntry as $value) { ?>
<option><?php echo $value->apartament ?></option>
<?php }?>
</select>
在同一視圖中,這是我的AJAX部分:
function showUser(str) {
if (str == "") {
document.getElementById("txtApartament1").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtApartament1").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", base_url + "usercontroller/ajaxp?q="+str,true);
xmlhttp.send();
}
}
這是我的控制器-usercontroller.php函數:
public function ajaxp(){
echo "received";
}
我會收到此錯誤:
(索引):257未捕獲的參考錯誤:在HTMLSelectElement.onchange(localhost / adminigniter1 /:205:89)的showUser(localhost / adminigniter1 /:257:29)處未定義base_url
我的項目文件名為codeigniter1!
我沒有在codeigniter上設置任何配置文件。 我是不是該 ? 還要別的嗎?
像這樣嘗試
1.使用$this->load->helper('url')
或在applicaiton/config/autoload.php.
$this->load->helper('url')
applicaiton/config/autoload.php.
2.在application/config/config.php
設置base_url配置項
$config['base_url'] = 'your_url';
3,在腳本中刪除var
因為它將變量創建為local
變量,所以您不能使用內部函數。
base_url = <?php echo base_url();
或將其var base_url = <?php echo base_url(); ?>
在showUser()
函數中的var base_url = <?php echo base_url(); ?>
。
更新
var url = base_url + "usercontroller/ajaxp?q="+str; //OR var url = <?php base_url();?>+"usercontroller/ajaxp?q="+str;
console.log(url);
xmlhttp.open("GET",url,true);
xmlhttp.send();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.