1

PHP で onsubmit() の値を使用しようとしています。

より具体的に: 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
}
4

1 に答える 1

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を使用していることに注意してください)。

于 2011-02-08T14:39:22.543 に答える