2013-12-18 32 views
0

A遵循幾個示例,但我不能讓它工作。 submiting表格後我調用這個函數:如何通過.get()從文件中獲取變量

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是真的或假的。現在它會提醒所有標籤,包括在內。我問得太多了嗎? :))

預先感謝您的幫助!

+2

裏面坐了JavaScript中的PHP文件不會被解釋。順便說一句,你的腳本什麼也不返回 –

+0

你試圖返回到'$ .get'的什麼數據? – Matt

回答

0

嘗試從你的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將是一個字符串,而不是一個布爾

+0

如果我回顯這個,它將返回1,如果郵件在DB中,否則它不返回任何內容。 –

+0

@MichalSirůček1是真的,你很幸運。 –

0

即使繼續之前,添加一些錯誤處理,以確保你的後端代碼正在工作。這包括檢查失敗的查詢,如果返回任何行:

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 
} 

?> 
+0

查詢的工作原理,我使用這段PHP在我的網站上的其他地方,並有作品。我也檢查查詢的變量是否正確傳遞,它是。問題不在於此:/ –

+0

我並不是說它不起作用,它只是不良的做法,沒有錯誤檢查。由於數據無效或數據庫連接問題,有很多因素會導致其在未來不能工作。 如果你再次閱讀答案,你會發現這只是我的觀點**。 – Matt

+0

所以我需要做的只是刪除所有的標籤,包括checkMail.php中的腳本? –

相關問題