2011-02-08 7 views
1

私はPHPでonsubmit()の値を使用しようとしています。javascriptのonsubmitイベントからPHPで変数を使用する

具体的には クライアントからHTMLフォームが送信されています。 onSubmitはそれをいくつかのjavascript関数に渡します。これらの関数の1つは、すでに使用されているかどうかを確認するために登録された電子メールのリストをデータベースから取得することになっています。

<?php 
$email='?> frm.add_fd2.value <?php '; 
// execute query 
$num_rows = mysql_num_rows($result); ?> 
var num_rows = <?php echo (is_int($num_rows)) ? $num_rows : 0; ?>; 
if (num_rows > 0) { 
    // JAVASCRIPT ERROR 
} 
+1

あなたが知りたいのは正確ですか? – Pointy

答えて

1

JavaScriptはクライアントサイドの言語です。 PHPから値を取得しようとしているようですが、これは決して起こりません。 PHPはJavaScriptが動作する前に長期間実行されます。

フォームを使用してPHPに値を送信するか、AJAX呼び出しのようなものを使用してPHPに値を送信して、ページが読み込まれた後に処理できるようにする必要があります。

あなたのケースでは、AJAXが良い選択肢と思われます。その場合には、次のようなものが動作するはずです:

$.getJSON('verify_email.php',{email:frm.add_fd2.value},function(data){ 
    if (data.matches>0){ 
    // matches were found 
    }else{ 
    // no matches found 
    } 
}); 

その後、verify_email.php中:

<?php 
    // ... establish connection ... 
    $email = mysql_real_escape_string($_GET['email']); // note, this should be checked for existance 
    $result = mysql_query("SELECT * FROM table WHERE email='{$email}'"); 
    header('Content-Type: application/json'); 
    echo '{matches:'.mysql_num_rows($result).'}'; 
?> 

またはその種の何か。 (これを構文的に簡単にするためにjQueryを使用しています)。

+0

こんにちはブラッド、これは多くの意味があるようです。正しい方向に私を指してくれてありがとう! – Marius

+0

@マリアス:どうぞよろしくお願いします。それ以上の助けが必要な場合は、コメントを残してください(または新しい質問を投稿してください)。 ;-) –

関連する問題