2010-03-11 82 views
0

我有一個對話框,在頁面加載時打開一個網站。jQuery對話框,php表格

script type="text/javascript"> 
$(function() { 
    $('#dialog-message').dialog({ 
     modal: 'true', 
     width: '400' 
    }); 
}); 

</script> 

此拉起一個包括:

<div id="dialog-message" title="Free Jiu Jitsu Session at Alliance"> 
      <!--#include virtual="/includes/guest.php" --> 

guest.php具有由網頁本身處理的一個非常小的形式:

<?php 
$dbh=mysql_connect //login stuff here  
       if (isset($_POST['submit'])) { 

       if (!$_POST['name'] | !$_POST['email']) 
       { 
       echo"<div class='error'>Error<br />Please provide your Name and Email Address so we may properly contact you.</div>"; 
       } 
       else 
       { 
       $age = $_POST['age']; 
       $name = $_POST['name']; 
       $gender = $_POST['gender']; 
       $email = $_POST['email']; 
       $phone = $_POST['phone']; 
       $comments = $_POST['comments']; 

       $query = "INSERT INTO table here (age,name,gender,email,phone,comments) 
       VALUES ('$age','$name','$gender','$email','$phone','$comments')"; 

       mysql_query($query); 

       mysql_close(); 

       $yoursite = "my site here"; 
       $youremail = $email; 

       $subject = "Website Guest Contact Us Form"; 
       $message = "message here"; 

       $email2 = "send to email address"; 

       mail($email2, $subject, $message, "From: $email"); 

       echo"<div class='thankyou'>Thank you for contacting us,<br /> we will respond as soon as we can.</div>"; 

       } 
       } 
       ?> 

       <form id="contact_us" class="guest" method="post" action="/guest.php" > 
        <fieldset> 
         <legend>Personal Info</legend> 
          <label for="name" class="guest">Name:</label> 
          <input type="text" name="name" id="name" value="" /><br> 

          <label for="phone" class="guest">Phone:</label> 
          <input type="text" name="phone" id="phone" value="" /><br> 

          <label for="email" class="guest">Email Address:</label> 
          <input type="text" name="email" id="email" value="" /><br> 

          <label for="age" class="guest">Age:</label> 
          <input type="text" name="age" id="age" value="" size="2" /><br> 

          <label for="gender" class="guest">Sex:</label> 
          <input type="radio" name="gender" value="male" /> Male 
          <input type="radio" name="gender" value="female" /> Female<br /> 
        </fieldset> 

        <fieldset> 
         <legend>Comments</legend>  

          <label for="comments" class="guest">Comments/Questions:</label> 
          <textarea id="comments" name="comments" rows="4" cols="22"></textarea><br> 

          <input type="submit" value="Submit" name="submit" /> <input type="Reset" value="Reset" /> 

        </fieldset> 
       </form> 

問題是,表單操作的路徑不起作用,因爲此對話框位於網站的index.html頁面上,如果我將絕對路徑,它不處理...

我有另一個與我們聯繫頁面此功能,所以我知道它的作品,但機智的對話框,它似乎難倒我......

又該我做?

+0

這是真正的guest.php代碼嗎?您所展示的內容嚴重受到SQL注入攻擊。你是否消毒用戶輸入? – 2010-03-11 20:17:32

回答

0

我覺得你最好的(簡單)的選擇實際上是發佈形式的包裝頁面(thanks.php或者你有什麼),這又包括guest.php代碼。

現在你已經知道了,你會發布你的結果到include/guest.php文件,它沒有明顯的HTML修飾。這聽起來像你可能希望結果以AJAX-y的方式加載到對話框中?

+0

是的,我想在同一個對話框中保留「謝謝」,是不可能的? – 2010-03-11 19:51:23

+0

確定這是可能的,但是您必須考慮某種類型的AJAX解決方案 - 簡而言之,通過異步JavaScript將數據發送到服務器,然後使用新的HTML更新DIV。無數的教程在線存在。我特別選擇使用JQuery庫。 Google $ .get() 單獨服務器端包含的行爲不會像您希望的那樣運行,因爲它全部歸結爲瀏覽器作爲一個響應(頁面+服務器包含)。除非您只想假它,並有你的thanks.php包裝頁面的外觀和感覺完全一樣:-) – LesterDove 2010-03-11 20:30:48

+0

這可能是我現在的最佳選擇...僞裝它。 謝謝 – 2010-03-11 20:45:07

0

嘗試不同的代碼或使用#在action屬性