1

我正在尝试在 php 中使用来自 onsubmit() 的值。

更具体地说:客户端正在提交一个 HTML 表单。onSubmit 将它传递给几个 javascript 函数。其中一个函数应该从数据库中获取已注册电子邮件的列表,以检查它是否已被使用。

<?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 回答