谁能给一个ajax 异步请求提交数据的简单例子
用ci写了一个注册表。用户名文本框填写完以后利用Ajax异步功能,自动将数据提交到服务器段检测,比如用户名不能是“admin”。但是在codeigniter框架中该怎么写呀?比如js中的url该怎么写?接收js文件提交数据的控制器文件又该注意哪些事项?哪位大侠能给一个简单完整的例子?手册上有介绍啊 然后再通过百度一下这很简单的啊 可以仿照tp的ajaxRetuen写一个类型的函数 <?php echo form_open('xxx/xxx');/*跟下面的url一样*/?>
<input type="text" name="email" id="email" onblur="checkEmail();">
<input type="password" name="password">
</form>
<script>
function checkEmail(){
xmlHttp=GetXmlHttpObject();
var url="xxxxx/xx?email="document.getElementById("email").value;//前者是controller,后者是该controller内的方法
xmlHttp.open("get",url,true);
xmlHttp.onreadystatechange=checkSuccess;
xmlHttp.send();
}
function checkSuccess(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
var email_obj=eval("("+xmlHttp.responseText+")");
if(email_obj.email=="true"){
$('emails').innerHTML="该电子邮箱可以使用";
}else{
$('emails').innerHTML="该电子邮箱不可以使用";
}
}
}
function GetXmlHttpObject(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();
}catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
return xmlHttp;
}
</script>
这是view层的,url自己把 控制器/控制器的方法 加上,表单的开头一定要这样echo出来,不能直接写标签,不然出错……具体不知道为啥 <?php
class controller extends CI_Controller
{
function __construct(){
parent::__construct();
session_start();
}
function xxxxxx(/*就是提交到这里,不用写参数*/){
$email=$_GET['email'];
$this->load->model('model1');
if($email=="admin"){
$info='{"email":"false"}';//不可以用
}else{
$info='{"email":"true"}';//可以用
}
echo $info;//把info返回给ajax那边,给checkSuccess那里判断这个json
/*上面的到这里为止*/
/*下面是有数据库版本的,你只检查admin就不用下面这一段了*/
$res=$this->model1->checkemails($email);/*这里就是把email代入数据库中检测返回结果,可以给你写个只检查admin这个字的*/
/*下面这里就是跟数据库进行交互之后返回的$res,然后进行判断是否可用*/
if($res)
{
$info='{"email":"true"}';//可以用
}
else
{
$info='{"email":"false"}';//不可以用
}
echo $info;
}
?> 主要就是表单onblur动作那里,对那个email失去焦点就开始发ajax请求去检验 谢谢大家了
页:
[1]