CI上的一个简单的AJAX应用
本帖最后由 sharmaking 于 2009-11-27 23:50 编辑这几天做项目想实现注册时自动检测用户名是否合法的一个小功能
一直也还没尝试在CI上部署AJAX应用,在论坛上查遍了很多版友的例子终于搞定了,绕了不少弯路,把自己的这个发出来分享一下
JS
<script type="text/javascript">
var xmlobj; //定义XMLHttpRequest对象
function CreateXMLHttpRequest()
{
if(window.XMLHttpRequest)
{//Mozilla浏览器
xmlobj=new XMLHttpRequest();
if(xmlobj.overrideMimeType)
{//设置MIME类别
xmlobj.overrideMimeType("text/xml");
}
}
else if(window.ActiveXObject) { //IE浏览器
try {
xmlobj=new ActiveXObject("Msxml2.XMLHttp");
}
catch(e) {
try {
xmlobj=new ActiveXobject("Microsoft.XMLHttp");
}
catch(e) {
}
}
}
}
function Validate() //主程序函数
{
CreateXMLHttpRequest(); //创建对象
var showurl = "check_username?username=" + document.getElementById ("username").value; //构造URL
xmlobj.open("GET", showurl, true); //调用validate.phpmingm
xmlobj.onreadystatechange = StatHandler; //判断URL调用的状态值并处理
xmlobj.send(null); //设置为不发送给服务器任何数据
}
function StatHandler() { //用于处理状态的函数
if(xmlobj.readyState == 4 && xmlobj.status == 200) //如果URL成功访问,则输出网页
{
document.getElementById("msg").innerHTML=xmlobj.responseText ;//替换,即输出结果。
}
}
</script>
View
<HTML>
<form action="<?php echo site_url('user/do_register')?>" name="form1" method="post" accept-charset="utf-8">
<table border="0" cellspacing="1" cellpadding="0">
<tr>
<th><label for="username">登录帐户名:<em>*</em></label></th>
<td class="input"><input type="text" name="username" id="username" value="" class="text"></td>
<td id="msg"></td>
</tr>
</table>
<form>
</HTML>
controller
<?php
function check_username() {
parse_str($_SERVER['QUERY_STRING'], $_GET); //因为CI默认不使用get方法,所以使用的时候要在前面加上这一句
$username = $_GET["username"];
if($query = $this->user_model->check_username($username)){
echo "<p style='color:ff0000'>该用户名已被注册</p>";
}
else {
echo "<p style='color:green'>该用户名可以使用</p>";
}
}
?>
对了,还要将config.php改一下
<?php
$config['uri_protocol'] = "PATH_INFO";
?>
其实没想象中那么难,呵呵 本帖最后由 sharmaking 于 2009-11-27 23:51 编辑
厄,第一次发这个,还不会加高亮~~
~~
厄,之前网络不好,加不了高亮标签,现在搞定了,呵呵 用JQUERY 库就一条语句
自己写的AJAX的JS,老让我头晕 我也同意LS的。
用纯JS写AJAX太罗嗦了,光一个浏览器判断就N条语句。。
用jquery吧。。恩恩。 LZ 你好。。我按照你的方法去做。。但是我就是获取不了返回的值。。为什么会这样的呢??你AJAX上的URL是代表什么??可以详细点吗??如果我的控制器是RE.PHP里面有一个方法叫INDEX,我想通过AJAX来传一个值给INDEX这个方法。。AJAX上的URL应该怎样写??
感谢楼主回答。。
用POST的 怎么做? 用JQUERY写吧,现在几乎没有这样写的了。{:1_1:} 學習中
先拜讀了 justdoit 发表于 2012-2-28 13:08 static/image/common/back.gif
用JQUERY写吧,现在几乎没有这样写的了。
用JQUERY 主要是怎么写?
不要只说不做 这没什么,关键是控制器不用$this->load->view(页面,数据)而是return 数据,那页面的ajax怎么接收数据
页:
[1]
2