AJAX 在 codeigniter 中找不到基础 URL
AJAX in codeigniter doesn't find base URL
我的另一个问题是,代码是否正确,我的 AJAX 请求会到达我的控制器吗?
以下是代码中的相关部分:
我的观点(我在 POST 表单上有这个,因为我想在另一个 table 上发送数据):
<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";
}
我会得到这个错误:
(index):257 Uncaught ReferenceError: base_url is not defined
at showUser (localhost/adminigniter1/:257:29)
at HTMLSelectElement.onchange (localhost/adminigniter1/:205:89)
我的项目文件名为 codeigniter1!
我没有在 codeigniter 上设置任何配置文件。我是不是该 ?还有什么吗?
这样试试..
1.Load url 助手使用 $this->load->helper('url')
或 applicaiton/config/autoload.php.
2.Set base_url application/config/config.php
中的配置项
$config['base_url'] = 'your_url';
3.In 你的 script.Remove var
。因为它创建变量为 local
。所以你不能使用内部函数。
base_url = <?php echo base_url();
或将它var base_url = <?php echo base_url(); ?>
放在showUser()
函数中。
更新
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();
我的另一个问题是,代码是否正确,我的 AJAX 请求会到达我的控制器吗?
以下是代码中的相关部分:
我的观点(我在 POST 表单上有这个,因为我想在另一个 table 上发送数据):
<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";
}
我会得到这个错误:
(index):257 Uncaught ReferenceError: base_url is not defined at showUser (localhost/adminigniter1/:257:29) at HTMLSelectElement.onchange (localhost/adminigniter1/:205:89)
我的项目文件名为 codeigniter1!
我没有在 codeigniter 上设置任何配置文件。我是不是该 ?还有什么吗?
这样试试..
1.Load url 助手使用 $this->load->helper('url')
或 applicaiton/config/autoload.php.
2.Set base_url application/config/config.php
$config['base_url'] = 'your_url';
3.In 你的 script.Remove var
。因为它创建变量为 local
。所以你不能使用内部函数。
base_url = <?php echo base_url();
或将它var base_url = <?php echo base_url(); ?>
放在showUser()
函数中。
更新
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();