JavaScript验证无法插入数据库


JavaScript Validation cannot insert into the database

好吧,我不得不重新表述我的问题,我的javascript代码无法进入下一步,即isset[‘submit’],它只是停留在那里。我真的希望这里有人能帮助我纠正我的javascript代码,这样它就能成功地调用isset并运行我的php代码将其添加到数据库中。

我的php代码

if(isset($_POST['submit'])){
$firstname = mysql_escape_string($_POST['fname']);
$lastname = mysql_escape_string($_POST['lname']);
$age = mysql_escape_string($_POST['age']);
$gender = mysql_escape_string($_POST['gender']);
$email = mysql_escape_string($_POST['email']);
$password = mysql_escape_string($_POST['password']);
$nickname = mysql_escape_string($_POST['nickname']);
$regflag = 0;

$sql = "SELECT * FROM accounts";
$query = mysql_query($sql);
while($row = mysql_fetch_assoc($query))
{
        if($row['email'] == $email)
        {
            echo '<b> The email is already taken!</b>'; 
            $regflag = 0;
        }
        if($row['nickname'] == $nickname)
        {
            echo '&nbsp;<b>The nickname is already taken!</b>'; 
            $regflag = 0;
        }
}
if($regflag == 1)
{
    $regsql = "INSERT INTO accounts         VALUES('','$firstname','$lastname','$age','$gender','$email','$password','$nickname','MEMBER',now())";
    $query = mysql_query($regsql);
    echo '<body onLoad = "regsucess()"> </body>';
}

}

我的javascript代码

<script type = "text/javascript">
function validator(){
    if(!document.register.fname.value)
    {
    alert('You need to supply your first name.');
    document.register.fname.focus();
    return false;
    }
    if(!document.register.lname.value)
    {
    alert('You need to supply your last name.');
    document.register.lname.focus();
    return false;
    }
    if(!document.register.age.value)
    {
    alert('You need to supply your age.');
    document.register.age.focus();
    return false;
    }
    if(!document.register.email.value)
    {
    alert('You need to supply your email.');
    document.register.email.focus();
    return false;
    }
    if(!document.register.password.value)
    {
    alert('You need to supply your password.');
    document.register.password.focus();
    return false;
    }
    if(!document.register.nickname.value)
    {
    alert('You need to supply your nickname.');
    document.register.nickname.focus();
    return false;
    }

register.action = "register.php"
document.register.submit();
//alert("Congrats!");

}

您应该在PHP代码中复制(至少)您使用的代码是Javascript,以便插入数据库。事实上,插入的代码应该更难——Javascript的东西是为了找出常见的问题(打字错误等),并给用户更好的体验。

只要确保Javascript代码没有PHP代码那么苛刻。

同意mplungjan的意见。

你能给我们看一下表单的html代码吗?也许提交输入的id与"submit"不同。

为什么register.action = "register.php"而不是
document.register.action = "register.php"
此外,如果您通过onclick提交按钮或通过onsubmit调用此命令,则删除最后一行document.register.submit();

最后,如果您表单中的任何东西都有name="submit",您将无法从脚本调用提交事件

以下是我希望看到的

<script type = "text/javascript">
function validate(theForm){
  if(!theForm.fname.value) {
    alert('You need to supply your first name.');
    theForm.fname.focus();
    return false;
  }
  if(!theForm.lname.value) {
    alert('You need to supply your last name.');
    theForm.lname.focus();
    return false;
  }
  if(!theForm.age.value) {
    alert('You need to supply your age.');
    theForm.age.focus();
    return false;
  }
  if(!theForm.email.value) {
    alert('You need to supply your email.');
    theForm.email.focus();
    return false;
  }
  if(!theForm.password.value) {
    alert('You need to supply your password.');
    theForm.password.focus();
    return false;
  }
  if(!theForm.nickname.value) {
    alert('You need to supply your nickname.');
    theForm.nickname.focus();
    return false;
  }
  return true
}
</script>

使用

<form action="register.php" onsubmit="return validate(this)">