2013-01-15 217 views
0

我是一個總新手,所以請忍受我:))我已經設法創建一個表單,並使用PHP將數據發送到一個電子郵件地址。但是,一旦我點擊提交,屏幕變爲空白,而不是停留在當前頁面上並顯示消息。我猜我缺少某種PHP代碼?PHP表單提交返回空白

此外,我想使用我的窗體上的JQuery驗證器插件,我怎麼能添加它沒有基本搞砸了形式?

我的HTML:

<div> 
<form id="form_id" name="form_name" action="scripts/index.php" method="post"> 
       <div> 
        <label for="name">Name: </label> 
        <input type="text" name="name" id="name" placeholder="John Smith" required/> 
       </div> 

       <div> 
        <label for="email">Email: </label> 
        <input type="email" name="email" id="email" placeholder="[email protected]" required/> 
       </div> 

       <div> 
        <label for="message">Message: </label> 
        <textarea name="message" id="message" rows="5" cols="30"></textarea> 
       </div> 

       <div> 
        <input id="submit" type="submit" name="submit" value="submit" /> 
       </div> 
      </form> 
      <p id="feedback"><?php echo $feedback; ?></p> 
</div> 

我的PHP:

<?php 

$to = '[email protected]'; 
$subject = 'Message from The Rocket Factory'; 

$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

$body = <<<EMAIL 

Hi, my name is $name. 

$message 

From $name 
My Address is $email 


EMAIL; 

$header = "From: $email"; 

if($_POST){ 
    mail($to, $subject, $body, $header); 
    $feedback = 'Thanks for your message'; 
} 

?> 
+0

對不起,但是'$ body'代碼是什麼?你爲什麼有<<<那裏? – Charles

+0

如果你想留在頁面上,你的表單動作應該最終轉回到你的HTML。 – Raptor

+0

是你的PHP上的HTML在同一頁(腳本/ index.php)? – 2013-01-15 03:39:18

回答

0

你的形式將用戶腳本/ index.php文件。您使用HTML表單在頁面上回顯'$ feedback'var。使用
header(「location:filelocation」)重定向腳本/ index.php; exit();

1

PHP您創建的腳本將返回一個空白頁面,因爲該腳本僅用於發送電子郵件。我認爲你需要PHP腳本和HTML腳本在腳本的頂部PHP腳本結合在一起,以獲得您想要和編輯表單操作清空這樣的例子:

<?php 

$to = '[email protected]'; 
$subject = 'Message from The Rocket Factory'; 

$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

$body = <<<EMAIL 

Hi, my name is $name. 

$message 

From $name 
My Address is $email 


EMAIL; 

$header = "From: $email"; 

if($_POST){ 
    mail($to, $subject, $body, $header); 
    $feedback = 'Thanks for your message'; 
} 

?> 

<div> 
<form id="form_id" name="form_name" action="" method="post"> 
       <div> 
        <label for="name">Name: </label> 
        <input type="text" name="name" id="name" placeholder="John Smith" required/> 
       </div> 

       <div> 
        <label for="email">Email: </label> 
        <input type="email" name="email" id="email" placeholder="[email protected]" required/> 
       </div> 

       <div> 
        <label for="message">Message: </label> 
        <textarea name="message" id="message" rows="5" cols="30"></textarea> 
       </div> 

       <div> 
        <input id="submit" type="submit" name="submit" value="submit" /> 
       </div> 
      </form> 
      <p id="feedback"><?php echo $feedback; ?></p> 
</div> 
0

您可以通過兩種方式實現: 1.將php和html代碼放在一個頁面中。 2.使用ajax提交表單。

<div> 
    <form id="form_id" name="form_name" action="scripts/index.php" method="post"> 
      <div> 
       <label for="name">Name: </label> 
       <input type="text" name="name" id="name" placeholder="John Smith" required/> 
      </div> 

      <div> 
       <label for="email">Email: </label> 
       <input type="email" name="email" id="email" placeholder="[email protected]" required/> 
      </div> 

      <div> 
       <label for="message">Message: </label> 
       <textarea name="message" id="message" rows="5" cols="30"></textarea> 
      </div> 

      <div> 
       <input id="submit" type="submit" name="submit" value="submit" /> 
      </div> 
     </form> 
</div> 

    <?php 

    $to = '[email protected]'; 
    $subject = 'Message from The Rocket Factory'; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
     $message = $_POST['message']; 

     $body = <<<EMAIL 
     Hi, my name is $name. 
      $message 
     From $name 
     My Address is $email 
     EMAIL; 

    $header = "From: $email"; 

if($_POST){ 
    mail($to, $subject, $body, $header); 
    $feedback = 'Thanks for your message'; 
    echo '<p id="feedback">'.$feedback.'</p>'; <-- Notice this.. 
} 
?> 

您還可以在jQuery($ .ajax)或javascript中使用ajax。

+0

我剛剛複製並粘貼了上述所有代碼,但它仍然不起作用? – SlightlyClever

+0

whats操作頁面? – insomiac

+0

您可能必須更改表單操作.. – insomiac