2011-02-08 47 views
1

我想在PHP中使用值從的onsubmit()PHP中使用變量。與JavaScript的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 
} 
+1

究竟是什麼,你想知道嗎? – Pointy

回答

1

JavaScript是客戶端語言。它看起來像你試圖通過PHP從它中檢索一個值,這永遠不會發生。在JavaScript甚至開始播放之前,PHP將被長時間執行。

你需要或者通過表單提交到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使這在語法上更容易)。

+0

嗨布拉德,這似乎是它使一個很大的意義。感謝您指點我正確的方向! – Marius

+0

@Marius:不客氣,不是問題。如果您需要更多幫助,請發表評論(或發佈新問題)。 ;-) –