我正在为我的网站编写注册页面。这里是我的注册页面。任何人都可以看到为什么它不检查用户名是否已被使用或不是。我不知道PHP和JavaScript是否可以一起工作。javascript和php不能一起工作
HTML页面如下:
<html>
<head>
<title>Register</title>
</head>
<body>
<script language="javascript">
function checkInput()
{
if(document.register.username.value=="")
{
alert("Fill in username");
document.register.username.focus();
return false;
}else if(document.register.password.value==""){
alert("Fill in your password");
document.register.password.focus();
return false;
}else {
<?php
if(isset($_POST['submit'])){
include "connect.php";
$username=$_POST['username'];
$query="SELECT username FROM user";
$result=mysql_query($query);
while($row=mysql_fetch_array($result)){
$arr[]=$row['username'];
}
if(in_array($username,$arr)){
?>
alert("Username is already in use");// this part does not work!
document.register.username.focus();
return false;
<?php
}
}
?>
}
}
</script>
<form name="register" method="post" action="dangki.php" onsubmit="return checkInput();">
<table width="289" height="185" border="1">
<tr>
<td colspan="2">register</td>
</tr>
<tr>
<td width="83">Username</td>
<td width="190"><input type="text" name="username" id="textfield" ></td>
</tr>
<tr>
<td>Password</td>
<td><input type="text" name="password" id="textfield2"></td>
</tr>
<tr>
<td>Re-type Password</td>
<td><input type="text" name="repassword" id="textfield3"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" id="button" value="Submit"> </td>
</tr>
</table>
</form>
</body>
</html>
是和否。通过Ajax,PHP和JS可以一起工作。由于PHP是在服务器端处理的,所以不会以您编码的方式进行编码,因此在任何JS运行之前,页面中的所有php都将作为HTML进行处理和输出。 PHP只会在您提交或重新加载页面时再次运行。因此,您要么使用Ajax检查用户名可用性,要么使用PHP来完成。 – 2012-07-08 06:51:59
* checkInput()函数中的每个*代码路径是否返回false?你的表单是否提交?如果表单实际上没有提交给服务器,那么您如何期望服务器端PHP代码对其作出响应? – David 2012-07-08 06:56:14
@David JS函数默认返回'true',所以如果它没有得到任何错误路径,表单将被提交(当然,考虑一个有效函数)。 – 2012-07-08 06:59:04