2017-01-30 47 views
0

而我的另一個問題是,代碼是否正確,我的AJAX請求是否會到達我的控制器?codeigniter中的AJAX沒有找到基地址

下面是對代碼的相關部分:

我的觀點(我有這樣的一個帖子的形式,因爲我要發送另一個表中的數據):

<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(); 
    } 
} 

這是我的控制器 - 用戶控件ler.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上設置任何配置文件。我是不是該 ?還要別的嗎?

+0

沒有你加載網址幫手。 –

+0

base_url函數不是變量。它應該是base_url() –

+0

是的Hek:$ autoload ['helper'] = array('url','form'); – Bogdan

回答

1

嘗試這樣的..

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

2.設置BASE_URL配置項的url幫手application/config/config.php

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

3.In您script.Remove var 。因爲它創建的變量爲local。所以你不能使用裏面的函數。

base_url = <?php echo base_url(); 

OR把它var base_url = <?php echo base_url(); ?>showUser()功能。

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(); 
+0

如果我這樣做:,我將得到Uncaught SyntaxError:意外的標記:在源代碼中 - > ,當我將選擇我仍然會得到未定義的base_url(我有我的配置文件夾中的所有網址)。 – Bogdan

+0

嘗試base_url裏面的功能 –

+0

似乎我不會得到URL的問題,但我仍然得到了http後的「:」標記的問題,當我從源響應上的url生成鏈接時:base_url = http: //本地主機/ adminigniter1 /。我還會得到:(索引):203 Uncaught ReferenceError:showUser未定義(...) – Bogdan