2012-05-06 90 views
-2

所以我遇到了一個想法,我想出了一個巨大的錯誤。所以我在一個項目上工作,在我的主網站上,我們需要建立一個正在工作的頁面,yadayda,但我想添加讓用戶發送他們的電子郵件的功能,但是在我們收到這些數據後,彈出對話框會顯示..但是,這不工作,因爲我希望它。JavaScript事件,與PHP混合?

所以我需要幫助,實際上是PHP和JavaScript事件,以確認郵件和電子郵件已發送,然後顯示對話框。有誰知道如何做到這一點?或者至少如何在用戶做了一些事情後做出對話顯示,如輸入信息而不是點擊按鈕?如果任何人都可以幫助,我會很可笑地欣賞它!

回答

5

如果您使用jQuery,您可以對您的服務器端腳本進行AJAX調用,並使用成功回調在客戶端啓動對話框。

$.ajax({ 
    url: 'ajax/test.php', 
    data: { name: "WeLikeThePandaz", email: "[email protected]" }, 
    success: function(response) { 
    if (response.status == "OK"){ 
     // Show dialog 
    }else{ 
     // Let the user know there were errors 
     alert(response.error); 
    } 
    } 
},'json'); 

下面是使用$.ajax方法相關文件 -

http://api.jquery.com/jQuery.ajax/


你的服務器端代碼放在ajax/test.php然後可以破譯所發送的數據和組裝JSON對象返回到jQuery -

<?php 
$err= ''; 
$name = sanitizeString($_POST['name']); 
$email = sanitizeString($_POST['email']); 
// note the sanitization of the strings before we insert them - always make sure 
// to sanitize your data before insertion into your database. 

// Insert data into database. 
$result = mysql_query('INSERT INTO `user_table` VALUES...'); 
if (!$result) { 
    $status = "FAIL"; 
    $err = mysql_error(); 
}else{ 
    $status = "OK"; 
} 

echo json_encode(array('error'=>$err,'status'=>$status)); // send the response 
exit(); 

?> 
+0

F sweet甜蜜!我被困在如果我應該使用javascript調用函數,然後只是把php代碼放在javascript元素女巫是div模式,或者我仍然可以使用css div在ajax呢? – gitmarko

+0

我不明白你在問什麼。你不能把PHP代碼放在客戶端。您的JavaScript調用執行PHP腳本,該腳本將對JavaScript請求進行響應。在這個階段,與HTML的連接是無關緊要的。一旦你有了PHP腳本的響應,你可以告訴JavaScript根據你得到的響應來更新HTML - 'success'或'error' – Lix

+0

好吧,我想我得到了那個握手,但是我能'不知道是如何根據用戶是否失敗或成功實際顯示對話框,並且如果使用了顯示對話框,所以它帶有它自己的javascript,那麼在特定事件發生後是否有觸發對話的方式? – gitmarko