免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10200 | 回复: 6
打印 上一主题 下一主题

[JS]PHP函数如何可以利用JS函数的返回值呢,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-24 10:56 |只看该作者 |倒序浏览
<?php
//验证用户申请的用户名是否存在的PHP函数:
Function check_id($username) {
    $mysqli = new mysqli('localhost','root','mypass','Users');
    $query = "SELECT COUNT(*) FROM Users.users WHERE username=' ".$username." ';";//查询Users.Users数据表
    $results = $mysqli->query($query);
    $row = $results->fectch_row();
    if($row[0] === 0) {
        return "用户名可用,请继续完成注册!";
    }else {
        return "用户名已被注册,请选择其他的用户名!";
    }
    $results->close();
    $mysqli->close();
}
?>
//HTML代码部分
<html>
<head>
<script language="javascript">
function getusername() {
//用于返回用户注册表单中的username项的值
return userreg.username.value;//这里的疑问是,此函数返回的值如何传递给PHP函数check_id($username)?
}
</script>
</head>
<body>
<form name="userreg" method="post" action="<?php echo $_SERVER['PHP_SELF']";?>>
用户名:<input type="text" name="username" size="16" onblur="getusername()">
<input type="button" name="checkid" value="checkid" onClick=<?php echo "alert(' ".check_id(?>getusername()<?php echo )." ')";?>>//这部分,即onClick="",很头痛,搞了一晚上也没搞定,麻烦高手指点一下吧,快晕了 :(,主要的思路是,希望通过JS的onclick事件来响应用户点击checkid的动作,希望可以把JS函数,getusername()返回值传递给PHP的函数,并以alert的方式,向用户通知检查结果。。。
<br>
密码:<input type="password" name="userpassword" size="16">
<br>
<input type="submit" value="注册">
</body>
</html>

[ 本帖最后由 HonestQiao 于 2006-6-29 08:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-24 14:41 |只看该作者
其实,写出来后,感觉有点儿乱,哪位兄弟把代码贴到文件里就可以看到效果了 :)
代码量,很少的一点,就是有些乱,我再说说思路吧,大家评判一下是否可行呢?
1.构建一个简单的WEB FORM,两个字段即可,其实一个字段也可以,检查用户名是否可用而已嘛,不过,我担心,如果只有一个字段的FORM,大家会说,直接把FORM提交一下,这样,就可以通过$_POST['']来访问啦,呵呵
2.两个字段,分别是用户名和密码输入框,在用户名输入框之后,有一个button,叫做“CheckID”,希望在用户名被check之后,返回一个JS的alter提示即可;
3.设计一个PHP函数,实现数据库连接,并完成用户名的检查,即确定是否在数据库中存在;
4.因为在用户点击CHECKID按钮的时候,整个WEB FORM尚未提交,因此,无法用PHP直接访问$_POST['username']字段;
5.所以,在username输入框中,添加一个事件处理,即onChange或onBlur,这样做的目的是,在用户输入了一个用户名之后,依靠JS函数返回这个字段的值,因为表单尚未提交,能访问其内容的,我能想到的就是JS了。
6.现在问题的焦点是,如何让PHP函数访问到JS返回的值呢?
我做过了,在下面的情况时没问题的
<input type="button" name="checkid" value="CheckID" onClick=<?php echo "alert(' "?>getusername()<?php echo " ')";?>>
上述代码是可以把JS函数,即getusername()的返回值打印出来的,但是,一旦涉及到PHP函数Check_id($username)就有问题了。
麻烦各位给看看,到底有什么办法解决,还是我的思路有问题,谢谢了!

论坛徽章:
0
3 [报告]
发表于 2006-06-26 10:06 |只看该作者
iframe 一样实现 页面内找个js变量存放 php返回的结果 php header('javascript'); 那样 返回结果为js的

论坛徽章:
0
4 [报告]
发表于 2006-06-26 10:18 |只看该作者
AJAX

论坛徽章:
0
5 [报告]
发表于 2006-06-27 00:32 |只看该作者
非常感谢各位的建议,都很好,给我很好的方向或方法的指引!
我没用过AJAX,但是在各位的建议之下,我还是尝试着用了一次,感觉很好,只是目前,我在AJAX方面应用很肤浅(其他其他方面有很菜,希望各位今后能多指点。。。呵呵)
我有几个调试过程中的心得,写出来,方便其他有同样苦恼的朋友们吧 :)不过,可能不是很切合主题了
JS方面:
FireFox5.0.4与IE6的一点儿分别,如下,
<input type="text" name="testfield" size="16">
在WEB表单应用中,我们常常写类似上面的Elements,对吧
但是在使用JS的document.getElementById('testfield')的时候,上述表单元素,即<input ...>,在IE中,是没有问题的!
但是,FireFox却不行,如果想使用上述的JS函数,需要写成如下格式:
<input type="text" name="testfield" id="testfield" size="16">
感觉是FireFox对语法更严格,其实,一直是这样的,IE在便利性方面,确实有些优势!
大小写问题:
如果在AJAX的时候,用到了外面的PHP或JSP文件,记得文件名和路径名一定要与物理文件一致,否则,IE没问题,但是,FireFox却会出问题!

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2006-06-29 08:46 |只看该作者
如果在AJAX的时候,用到了外面的PHP或JSP文件,记得文件名和路径名一定要与物理文件一致,否则,IE没问题,但是,FireFox却会出问题!

这个指的是什么?



你也可以使用ajah,更加简单,比ajax

论坛徽章:
0
7 [报告]
发表于 2011-08-23 10:09 |只看该作者
把return 换成 echo  就能提交到js里面了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP