2012-03-30 75 views
0

好吧,我不得不改变我的问题,我的JavaScript代码不能进入下一步isset ['submit']它只是卡在那里。即时通讯真的希望在这里有人可以帮助我正确的我的JavaScript代码,以便它将成功调用isset并运行我的PHP代码将其添加到数据库。JavaScript验证无法插入数据库

我的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!"); 


} 

+0

提供您正在使用的html代码... – 2012-03-30 16:59:57

+0

使用Web控制台在Firefox中运行它。它给了什么错误? – qitch 2012-03-30 17:01:43

+0

另外,你的数据库连接在哪里?你应该使用'mysql_real_escape_string',除非你使用4.3以下版本的mysql? 'mysql_escape_string'已被弃用。当然,大多数人会告诉你使用准备好的陈述,这些陈述更好用。 – qitch 2012-03-30 17:06:19

回答

0

为什么 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)"> 
+0

谢谢我现在有一个想法 – 2012-03-30 17:21:55

0

您应该复制(至少)您在PHP代码中使用的代码是插入到数据库中的Javascript。事实上,插入的代码应该更加严格 - Javascript的东西是挑选通常的嫌疑犯(拼写错误等),并为用户提供更好的体验。

只要确保Javascript代码不比PHP代码苛刻。

0

同意mplungjan。

你能告诉我们表单html代码吗?也许提交输入有一个不同于'submit'的id。