Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过.get()从文件中获取变量_Javascript_Php_Jquery_Get - Fatal编程技术网

Javascript 如何通过.get()从文件中获取变量

Javascript 如何通过.get()从文件中获取变量,javascript,php,jquery,get,Javascript,Php,Jquery,Get,A遵循了几个例子,但我就是不能让它工作。提交表单后,我将此函数称为: function kontrola(){ var jmeno = self.document.forms.newPassForm.user.value; $.get("checkMail.php?mail="+jmeno, function(jeObsazen){ alert(jeObsazen); }); return false; } PHP文件,其中决定jeObsaz

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>

var jeObsazen=
我只想在警报窗口中显示变量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
}

?>


将不会解释包含javascript的php文件。顺便说一句,你的脚本不返回任何东西你想从数据库返回什么数据到
$。get
?如果我回显,如果邮件在数据库中,它将返回1,否则它将不返回任何内容。@MichalSirůček 1是真的,你是幸运的。查询有效,我在我的web上的其他地方使用这段PHP,这是可行的。我还检查了查询的变量是否正确传递,是否正确。问题并不在于此:我不是说它不工作,只是没有错误检查是不好的做法。由于无效数据或数据库连接问题,有许多因素会导致它在将来无法工作。如果你再看一遍答案,你会发现这只是我的观点之一。那么,我需要做的一切仅仅是删除所有的标记,包括checkMail.php中的脚本吗?我删除了脚本,现在它可以工作了,比如说。。。顺便说一句,有没有办法只访问选定的变量?在我看来,将数据作为php文件中所有内容的字符串来获取似乎不是最好的方法…:/上面的echo不会返回所有内容的字符串,它会返回
($data['id']!=NULL)
语句的结果,该语句只能是true或false。另一个选项是根据查询返回的行数仅返回true或false。这样,您根本不需要获取数据。