Javascript AJAX在codeigniter上返回NaN
我在控制器上有一个函数,路径是usercontroller(控制器名/ajaxp(控制器函数)),看起来像这样,没什么特别的:Javascript AJAX在codeigniter上返回NaN,javascript,php,ajax,codeigniter-3,Javascript,Php,Ajax,Codeigniter 3,我在控制器上有一个函数,路径是usercontroller(控制器名/ajaxp(控制器函数)),看起来像这样,没什么特别的: public function ajaxp(){ echo "received"; } 这是我希望AJAX调用得到的路径 我有一个如下所示的选择框: <label for="exampleInputEmail1">Apartament</label> <select onchange="showUser(this.value)" name
public function ajaxp(){
echo "received";
}
这是我希望AJAX调用得到的路径
我有一个如下所示的选择框:
<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>
公寓
onchange将触发此AJAX:
函数showUser(str){
var url=+“usercontroller/ajaxp?q=“+str;
console.log(url);
如果(str==“”){
document.getElementById(“txtapartment1”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“txtapartment1”).innerHTML=this.responseText;
}
};
open(“GET”,url,true);
xmlhttp.send();
}
}
您的
没有价值
试试这个:
您的
没有价值
试试这个:
您缺少
试一试
var url=“”+”用户控制器/ajaxp?q=“+str;
您缺少周围的javascript字符串引号
试一试
var url=“”+”用户控制器/ajaxp?q=“+str;
这看起来很糟糕,现在我将得到:Uncaught TypeError:无法在document.getElementById(“txtapartment1”).innerHTML=This.responseText;,这意味着什么?这意味着document.getElementById(“txtapartment1”)
不存在。请为您的选择添加一个id:
但我的选择框上有name=“txtapart1”,我是否必须使用id=“txtapart1”进行选择?是的,或者您可以通过文档来更改选择器。getElementsByName('txtapart1')[0]
请注意,如果禁用了值
,
它将在选中时自动成为文本,因此如果文本和值是相同的值,则不需要。这看起来很好,现在我将得到:未捕获类型错误:无法将文档的属性“innerHTML”设置为null。getElementById(“TxtApartment1”).innerHTML=this.responseText;,这意味着什么?这意味着document.getElementById(“txTapartment1”)
不存在。请将id放入您的选择中:
但我的选择框上有name=“txTapartment1”,我是否必须使用id=“txTapartment1”进行设置是,或者您可以通过文档更改选择器。getElementsByName('txTapartment1')[0]
注意,如果禁用值
,
则选中该值时,它将自动成为文本,因此如果文本和值是相同的值,则不需要该值
var url = "<?php base_url();?>" + "usercontroller/ajaxp?q="+str;