2017-01-30 7 views
0

Und meine andere Frage ist, dass der Code korrekt ist, wird meine AJAX-Anfrage zu meinem Controller bekommen? HierAJAX in Codeigniter findet keine Basis-URL

sind die relevanten Teile auf dem Code:

Meine Sicht (ich habe diese auf einer POST Form, denn ich mag die Daten auf einem anderen Tisch senden):

<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 der gleichen Ansicht dies ist mein AJAX Teil:

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

Und das ist mein Controller - Usercontrol ler.php Funktion:

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

Ich werde diesen Fehler:

(index):257 Uncaught ReferenceError: base_url is not defined at showUser (localhost/adminigniter1/:257:29) at HTMLSelectElement.onchange (localhost/adminigniter1/:205:89)

Mein Projekt Dateiname ist codeigniter1!

Ich habe keine Konfigurationsdatei auf codeigniter gesetzt. sollte ich ? Noch etwas?

+0

hast du url Helfer laden. –

+0

base_url ist Funktion nicht variabel.Es sollte base_url() sein –

+0

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

Antwort

1

wie die Sie interessieren ..

1.Laden url Helfer mit $this->load->helper('url') oder in applicaiton/config/autoload.php.

2.Set base_url Config Artikel in application/config/config.php

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

3.In Ihre script.Remove var . Weil es Variable wie local erstellt. So können Sie nicht innerhalb Funktion verwenden.

base_url = <?php echo base_url(); 

OR setzen es var base_url = <?php echo base_url(); ?> innerhalb showUser() Funktion.

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

Wenn ich es so mache: , bekomme ich Uncaught SyntaxError: Unerwartetes Token: auf der Quelle -> , und wenn ich auswählen werde ich immer noch die undefined base_url (und ich habe alle URL in meinem Config-Ordner). – Bogdan

+0

versuche base_url innerhalb der Funktion –

+0

Nicht scheint, dass ich das URL-Problem nicht bekommen werde, aber ich bekomme immer noch das Problem mit dem ":" Token nach http, wenn ich meinen Link von URL auf die Quelle Antwort: base_url = http: // localhost/adminzeichner1 /. Ich würde jetzt auch bekommen: (index): 203 Uncaught ReferenceError: showUser ist nicht definiert (...) – Bogdan