2012-03-30 97 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。