2012-12-20 1 views
0

완벽하게 정상적으로 작동하는 양식이 있습니다. 그러나 메시지가 성공적으로 제출되면 사용자는 설정 한 'success'메시지와 함께 새 페이지로 리디렉션됩니다. 대신, 양식 옆에있는 div에 성공 메시지를 표시하고 사용자가 다른 메시지를 보내려는 경우 재설정 할 양식을 원합니다. 마찬가지로, 실패 할 때 같은 오류 메시지에 '오류'메시지가 표시되기를 기대합니다. 이것을 가능하게하기 위해 누군가가 if/else 문을 도울 수 있기를 바랬습니다.jQuery 성공적인 양식 제출시 DIV에 텍스트를 추가하는 If/else 문

내가 제대로 질문을 이해한다면
<?php 

$mail_to_send_to = "[email protected]"; 
$your_feedbackmail = "[email protected]"; 

$sendflag = $_REQUEST['sendflag']; 
if ($sendflag == "send") 
{ 
$name = $_REQUEST['name'] ; 
$email = $_REQUEST['email'] ; 
$message = $_REQUEST['message'] ; 
$headers = "From: $name" . "\r\n" . "Reply-To: $email" . "\r\n" ; 
$a = mail($mail_to_send_to, "Feedback form", $message, $headers); 
if ($a) 
{ 
print("Message was sent, you can send another one"); 
} else { 
print("Message wasn't sent, please check that you have changed emails in the bottom"); 
} 
} 

?> 
+3

아약스 양식과 자바 스크립트를 살펴 보시기 바랍니다. 여기에 특별한 오류가 없습니다. 단지 "어떻게해야합니까/보여 주시겠습니까?" –

+0

나는 Alastair에 동의합니다. 그것은 당신이 원하는 것을 어렵지 않다, 아약스 jquery 양식에 대한 구글은 당신에게 자습서의 수백을 줄 것이다. 또한 여기에서 검색을하면 실제 비트에 걸리면 시작하고 다시 돌아올 수있는 충분한 예제가 제공됩니다. – mplungjan

답변

0

, 당신은 페이지를 떠나지 오히려 div 표시하거나 사라지게 결코 찾고 : 여기

<div id="contact-area"> 

<form id="theform" name="theform" method="post" action="feedback.php"> 
<input type="hidden" name='sendflag' value="send"> 

<p> 
<label for="Name">Name:</label> 
<input type="text" name="name" id="name" value="" /> 
</p> 

<p> 
<label for="Email">Email:</label> 
<input type="text" name="email" id="email" value="" /> 
</p> 

<p> 
<label for="Message">Message:</label><br /> 
<textarea name="message" rows="20" cols="20" id="message"></textarea> 
</p> 

<p> 
<input type="submit" name="submit" value="Submit" class="submit-button" /> 
</p> 

</form>  
</div> 

<div class="message"> 
<p class="submitMessage"></p> 
</div> 

내 PHP의 : 여기

내 HTML의 성공적인 양식 제출을 토대로합니다. 그렇다면 AJAX를 사용해야하는 것처럼 보입니다. 다행히도, jQuery는 바로 내장되어 있습니다! 자세한 내용은

$.post("url.php", { option1: value1, option2: value2 }, function(data) { 
    if(data != '') 
     $('#theDiv').html("Success!"); 
}); 

, read up on the documentation here : 나는 다음과 같은 일을 건의 할 것입니다.

0

읽고 여기에 예를 따르십시오 : 당신은 기본적으로 같은 것을 할 수 있습니다 jQuery AJAX

.

$.ajax({ 
    url: /url/to/your/php, 
    data: dataObjectPosting 
    success: function(data){ 
    //the data object will have your PHP response; 
    $('#divid').text('success message'); 
    }, 
    error: function(){ 
    alert('failure'); 
    } 
}); 

성공이란 단순히 HTTP 200을 의미하며 PHP 코드가 제대로 표시되는 것처럼 실행되는 것은 아닙니다.