2012-03-30 11 views
0

大丈夫私の質問を言い換えれば、私のjavascriptコードは次のステップに進むことができません。実際にはここに誰かが私の正しいJavaScriptコードを助けて、issetを呼び出してPHPコードを実行してデータベースに追加することを期待しています。JavaScript Validationはデータベースに挿入できません

私の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コードを入力してください。 –

+0

ウェブコンソールを起動してFirefoxで実行してください。それはどのようなエラーですか? – qitch

+0

また、データベース接続はどこですか? 4.3より前のバージョンのmysqlを使用していない限り、mysql_real_escape_stringを使用していますか? mysql_escape_stringは推奨されていません。もちろん、ほとんどの人があなたに使い慣れた準備文を使うように指示します。 – qitch

答えて

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

感謝私は今考えがあります –

0

データベースに挿入するために使用するコードはPHPコード内のJavaScriptです(少なくとも)複製する必要があります。実際、挿入用のコードは厳しいものにする必要があります--Javascriptのものは通常の容疑者(タイプミスなど)を拾い、ユーザーに良い経験を与えることです。

JavascriptコードがPHPコードよりも厳しくないことを確認してください。

0

mplungjanと一致します。

フォームのHTMLコードを表示できますか?サブミット入力に「submit」と異なるIDが設定されている可能性があります。

関連する問題