2013-01-15 2 views
0

저는 총 초보자입니다. :) ... 폼을 생성하고 PHP를 사용하여 데이터를 이메일 주소로 보냈습니다. 그러나 일단 제출을 클릭하면; 현재 페이지에 머물면서 메시지를 표시하는 대신 화면이 공백으로 표시됩니다. 내가 일종의 PHP 코드가없는 것 같아요?PHP 폼 제출이 공백으로 반환됩니다.

또한 양식에 JQuery 유효성 검사기 플러그인을 사용하고 싶습니다. 양식을 잘못 고치지 않고 어떻게 추가 할 수 있습니까?

MY 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> 

MY 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

같은 페이지 (scripts/index.php)에 html보다 위의 PHP입니까? –

답변

0

양식 스크립트/index.php에 사용자를 취할 것입니다. HTML 양식으로 페이지에 '$ feedback'var을 표시합니다. 스크립트/index.php에서
헤더 ("location : filelocation")를 사용하여 리디렉션합니다. exit();

1

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

두 가지 방법으로이를 수행 할 수 있습니다 : 당신이 당신이 원하는 편집 양식 동작이 샘플처럼 비워 것을 얻기 위해 스크립트의 상단에 PHP 스크립트와 함께 PHP 스크립트와 HTML 스크립트를 결합 할 필요가 있다고 생각 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

관련 문제