2013-07-21 3 views
0

연락처 양식을 제출 한 후 일부 항목을 추가하려고합니다. 불행히도, 항목을 추가 할 문서를 지정하는 방법을 모르겠습니다. 여기에 전체 코드가 있습니다. 누군가 도울 수 있니?양식에 추가

<?php 
$field_name = $_POST['name']; 
$field_email = $_POST['email']; 
$field_message = $_POST['message']; 

$mail_to = '[email protected]'; 
$subject = 'Support Request'; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'Email: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#submit").append("<p class='success'>Thanks! Your email has been sent.</p>"); 
     }); 
    </script> 
<?php 
} 
else { ?> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#submit").append("<p class='error'>Sorry, something has gone wrong.</p>"); 
     }); 
    </script> 
<?php 
} 
?> 
+1

그러나 대신 자바 스크립트의 점검/서버 측 유효성 검사를 사용하는 것이 훨씬 낫다. 자바 스크립트를 사용 중지 할 수 있습니다. –

+0

@Fred Thanks. 나는 그 대신에 그것을 볼 것입니다. –

+0

"항목을 추가 할 문서를 어떤 방법으로 말해야할지 모르겠습니다." 그것은 많은 의미를 가지지 않습니다. 코드가 실행되는 문서에만 추가 할 수 있습니다. – j08691

답변

0

작업 데모 http://jsfiddle.net/NYac5/

$(document).ready(function() { 
    $("#submit").after("<p class='error'>Sorry, something has gone wrong.</p>"); 
}); 
+0

'.after()'가'.append()'보다 더 나은 이유는 무엇입니까? – j08691

+0

그는 제출 단추에 단락을 추가하려고 시도하고 있습니다.이 단추는 제출 단추가이 단락을 배치 한 후에 사용할 수 있습니다. append는 div, span, p 등 요소를 포함 할 수있는 요소와 함께 사용할 수 있습니다. –

+1

'# submit'은 HTML을 나열하지 않은데 어떻게 버튼인지 알 수 있습니까? – j08691

0

코드의이 섹션은 PHP, HTML 및 자바 스크립트를 혼합 - 그것은 다음과 같이 작동하지 않습니다.

if ($mail_status) { ?> 
    <script type="text/javascript"> 
    . 
    . 
    . 
    </script> 
<?php 

두 가지 중 하나를 수행해야합니다. 메일 상태로 새 문서를 내보내거나 Ajax 호출에 응답을 보냅니다. (그런 식으로 작업 한 경우)

예 :

if ($mailStatus) { 
?> 
<!doctype html><html><head></head><body> 
    <p class='success'>Thanks! Your email has been sent.</p> 
</body></html> 
<?php } else { ?> 
<!doctype html><html><head></head><body> 
    <p class='failure'>Sorry! Your mail couldn't be sent</p> 
</body></html> 
<?php } 

... 나 ...

나는 당신의 문제를 해결할 수
if ($mailStatus) { 
    header("Content-type: application/json"); 
    echo '{"errcode":"0","errmsg":"Success - your message was sent"}' 
} else { 
    header("Content-type: application/json"); 
    echo '{"errcode":"99","errmsg":"Sorry - your message couldn't be sent."}' 
<?php } 
+0

왜 믹싱 작업을하지 않습니까? – j08691

+0

코드를 구조화 한 방식으로 메일이 전송 될 수 있도록 양식이 제출되었습니다. 조건부 결과로 제출 된 양식에 메시지를 추가하는 작은 스크립트 만 내보내고 있습니다. 이미 제출되었으므로 코드가 실행되고있는 것입니다. 제출이 발생한 후에는 페이지에 더 많은 HTML을 내보낼 수 없습니다. 새 페이지에서 시작하거나 AJAX 호출을 사용하여 데이터를 보내고 다시로드하지 않고 응답에 응답하십시오. –

+0

그가 같은 페이지에 다시 게시하지 않는다는 것을 어떻게 알 수 있습니까? – j08691