2013-01-15 213 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