A 遵循了几个示例,但我就是无法让它工作。提交表单后,我调用此函数:
function kontrola(){
var jmeno = self.document.forms.newPassForm.user.value;
$.get("checkMail.php?mail="+jmeno, function(jeObsazen){
alert(jeObsazen);
});
return false;
}
而 PHP 文件,其中决定 jeObsazen 变量的内容如下所示:
<?
include "protected/_mysql.php";
$mail=$_GET['mail'];
$query = mysql_query("SELECT `id` FROM `users` WHERE `name` = '".$mail."'");
$data=mysql_fetch_array($query);
if($data['id']==NULL) $jeObsazen = false;
else $jeObsazen = true;
?>
<script type="text/javascript" language="JavaScript">
var jeObsazen = <?echo $jeObsazen;?>
</script>
我唯一想要的就是在警报窗口中显示变量 jeObsazen 是真的还是假的。现在,它会提醒标签中的所有内容,包括。我是不是要求太多了?:))
提前感谢您的每一次帮助!
尝试从 PHP 脚本返回一些内容:
<?
include "protected/_mysql.php";
$mail=$_GET['mail'];
$query = mysql_query("SELECT `id` FROM `users` WHERE `name` = '".$mail."'");
$data=mysql_fetch_array($query);
if($data['id']==NULL) $jeObsazen = false;
else $jeObsazen = true;
echo $jeObsazen;
?>
请注意,JavaScript 中的jeObsazen
将是一个字符串,而不是布尔值。
在继续之前,请添加一些错误处理以确保后端代码正常工作。这包括检查查询是否失败,以及是否返回任何行:
if( $query === false ) {
// query failed, details can be reached in mysql_error()
} else if( mysql_num_rows( $query ) ) {
// no data returned
} else {
$data = mysql_fetch_array($query);
}
注意:请删除//注释,并在发生故障时返回消息。
当您想知道为什么没有返回任何内容并且原因是数据库中没有数据或查询错误时,您稍后会为此感谢我!
接下来,你的php中不需要标签,这是不必要的。你只需要转储出变量:
$data = mysql_fetch_array($query);
if( $data['id'] != NULL ) {
echo $data['id']; // this will return the id to your javascript $.get call
}
这是它放在一起的样子:
<?
include "protected/_mysql.php";
$mail=$_GET['mail'];
$query = mysql_query("SELECT `id` FROM `users` WHERE `name` = '".$mail."'");
if( $query === false ) {
echo "Query failure";
} else if( mysql_num_rows( $query ) ) {
echo "No data returned";
} else {
$data = mysql_fetch_array($query);
echo ( $data['id'] != NULL ); // returns 1 if user is not null, 0 otherwise
}
?>