2012-11-02 48 views
0

我一直在四處尋找解決方案,我正在用一個PHP腳本來處理特定問題,我試圖重新使用它。如何通過彈出窗口確認表單提交,而不是重定向?

<?php $name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$formcontent = "$name \nMessage: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 
mail($recipient, $subject, $formcontent, $mailheader) or die ("Error!"); 
echo "Thank You!" . " -" . " <a href = '../index.html' style = 'text-decoration:none;color:#ff0099;'>Return Home</a>"; 
?> 

而不是重新引導到另一個頁面,我渴望瞭解的只是通過啓動模式彈出,而不是確認一個乾淨的方式。

我將腳本作爲外部文件運行,所以我猜測已經有一半的答案了,但就調用jQuery插件來完成其餘工作而言,我可以使用一個或兩個指針!

回答

0

或者你可以使用這個在onsubmit屬性

onSubmit="javascript: return confirm('Are you sure you want to submit this?');" 

會要求確定/取消確認

--- jQuery的阿賈克斯-----

function doSubmit(){ 
    var postData = jQuery('#your-form-id').serialize();  

    jQuery.ajax({ 
    url: 'form-action.php', 
    data: postData 
    }).done(function(html) { 
    alert(html); 
    }); 
} 

- 並在您的表格標籤---

<form id="your-form-id" onsubmit="javascript: doSubmit();" ... 
+0

....或者您的意思是表單的確認已經發布了嗎? –

+0

這是正確的,確認成功提交:) – user1691585

+0

k -jQuery或原型或香草JS?你將需要使用異步調用來做到這一點沒有重定向 - 讓我知道你想要哪個框架的例子,我會代碼給你一個簡單的例子:) –

1

如果您不想重新加載或重定向到新頁面,則需要通過AJAX進行發佈。

在AJAX調用的「成功」方法中,您將觸發對話框。

+0

謝謝Diodeus,我會看看這個,看看我能找到什麼。 – user1691585

0

由於Diodeus建議您應該使用HTTP請求來調用您的php文件。通過從請求中返回的輸出,您可以創建彈出窗口或任何想要通知用戶的內容。 Here你會發現一些基礎信息,說明如何做到這一點。

+0

謝謝蒂姆,這是一個非常有用的鏈接,好老的w3schools。 – user1691585

+0

請不要參考w3schools。 http://w3fools.com/ – hrwath

+0

@hrwath你在那裏發佈有趣的網站。不知道那個... –

1
  • 將所有html輸入封裝在表單元素中。
  • 點擊發送郵件鏈接,附加一個ajax事件發送一個ajax POST請求到包含發送郵件的業務邏輯的php文件(在您的問題中顯示爲 )。
  • 然後在事件成功後,您可以向用戶顯示成功消息。
  • 爲了用最少的 代碼實現這一點,我會建議你使用jQuery的組合(阿賈克斯 形式後)和Twitter的引導(對於CSS和模態窗口)
  • 像一些代碼執行下面可以幫助你

$( '#DIVID')點擊(函數(){

//start the ajax 
$.ajax({ 
    //this is the php file that processes the data and send mail 
    url: "send_mail.php", 

    //POST method is used 
    type: "POST", 
    // here we are serializing all form values (its is not php serialize) 
    data: $("#Form").serialize(), 
    //Do not cache the page 
    cache: false, 

    //success 
    success: function (html) {    
     if (html=='1') {  
      $('#divModal').modal('show') ; 

     }    
    }  
}); 

//cancel the submit button default behaviours 
return false; 

})。

相關問題