简体   繁体   English

Codeigniter中的AJAX找不到基本URL

[英]AJAX in codeigniter doesn't find base URL

And my other question is that, is the code correct, will my AJAX request get to my controller ? 我的另一个问题是,代码是否正确,我的AJAX请求会到达我的控制器吗?

Here is the relevant parts on the code: 这是代码上的相关部分:

My view (I have this on a POST form cause I want to send the data on another table) : 我的观点(我在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>

In the same view this is my AJAX part: 在同一视图中,这是我的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();
    }
}

And this is my controller - usercontroller.php function: 这是我的控制器-usercontroller.php函数:

public function ajaxp(){
echo "received";
}

I will get this error: 我会收到此错误:

(index):257 Uncaught ReferenceError: base_url is not defined at showUser (localhost/adminigniter1/:257:29) at HTMLSelectElement.onchange (localhost/adminigniter1/:205:89) (索引):257未捕获的参考错误:在HTMLSelectElement.onchange(localhost / adminigniter1 /:205:89)的showUser(localhost / adminigniter1 /:257:29)处未定义base_url

My project filename is codeigniter1! 我的项目文件名为codeigniter1!

I did not set any config file on codeigniter. 我没有在codeigniter上设置任何配置文件。 should I ? 我是不是该 ? Anything else? 还要别的吗?

Try like this.. 像这样尝试

1.Load url helper using $this->load->helper('url') or in applicaiton/config/autoload.php. 1.使用$this->load->helper('url')或在applicaiton/config/autoload.php. $this->load->helper('url') applicaiton/config/autoload.php.

2.Set base_url config item in application/config/config.php 2.在application/config/config.php设置base_url配置项

$config['base_url'] = 'your_url';

3.In your script.Remove var .Because it creates variable as local .So you can not use inside function. 3,在脚本中删除var因为它将变量创建为local变量,所以您不能使用内部函数。

base_url = <?php echo base_url();

OR put it var base_url = <?php echo base_url(); ?> 将其var base_url = <?php echo base_url(); ?> var base_url = <?php echo base_url(); ?> inside showUser() function. showUser()函数中的var base_url = <?php echo base_url(); ?>

UPDATE 更新

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM