codeigniter中的AJAX找不到基本网址

时间:2017-01-30 12:59:13

标签: javascript php ajax codeigniter-3

我的另一个问题是,代码是否正确,我的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";
}

我会收到此错误:

  

(index):257未捕获的ReferenceError:未定义base_url   在showUser(localhost / adminigniter1 /:257:29)   在HTMLSelectElement.onchange(localhost / adminigniter1 /:205:89)

我的项目文件名是codeigniter1!

我没有在codeigniter上设置任何配置文件。我是不是该 ?还有什么吗?

1 个答案:

答案 0 :(得分:1)

试试这样..

1.使用$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 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();