2016-08-09 3 views
1

웹 템플리트를 구입했으나 구매 후 지원이 없습니다. 이것은 한 페이지짜리 HTML5 디자인입니다. 메뉴 버튼은 index.html (page_ABOUT, page_SERVICES 등) 내의 페이지 앵커에 링크됩니다. 이 사이트는 링크 된 페이지 앵커가 정적 z- 색인 이미지 사이에서 원활하게 움직일 수 있도록 설계되었습니다. 템플릿 CAN BE SEEN HERE의 작업 데모.한 페이지 HTML5 디자인 내의 Ajax 문의 양식이 작동하지 않습니다.

내 문제에는 about_CONTACTS 페이지 앵커가 관련되어 있습니다. 다른 사이트에도 잘 작동하는 다른 연락처 페이지가 있지만 PHP 페이지 (예 : contact.php)입니다. 이 디자인의 범위 내에서 유지하려면 단일 HTML 페이지에서 about_CONTACTS 페이지 기능을 만들 수 있어야합니다. (. 별도의 PHP 연락처 페이지를 만들 수신 거부하는 디자인의 슬라이드 기능을 파괴하고 페이지를 다시로드의 원인)를 about_CONTACTS 페이지 양식에 대한 코드의 블록은 다음과 같습니다 헤드 태그 사이에

<form id="ajax-contact-form" action="javascript:alert('success!');"> 
<div class="clear"></div> 
<label>Your full name:</label> 
<INPUT class="textbox left " type="text" name="name" value=""> 
<div class="clear"></div> 
<label >E-Mail:</label> 
<INPUT class="textbox left" type="text" name="email" value=""> 
<div class="clear"></div> 
<label >Phone Number:</label> 
<INPUT class="textbox left" type="text" name="phone" value=""> 
<div class="clear"></div> 
<label >Message:</label> 
<TEXTAREA class="textbox left" NAME="content" ROWS="5" COLS="25"></TEXTAREA> 
<div class="clear"></div> 
<label>Captcha:</label> 
<img src="captcha/captcha.php" style="margin:3px 0px; width:100px; height:32px; float:left;"> 
<INPUT class="textbox" type="text" name="capthca" value="" style=" width:90px; float:left; margin-left:10px; margin-top:2px"> 
<div class="clear"></div> 
<INPUT class="pin" type="submit" name="submit" value="submit"> 
</form> 

자바 스크립트 것은 :

<script type="text/javascript">          
$(document).ready(function() 
{ 
    $("#ajax-contact-form").submit(function() { 
    var str = $(this).serialize();  
    $.ajax({ 
     type: "POST", 
     url: "contact.php", 
     data: str, 
     success: function(msg) 
     { 
     if(msg == 'OK') // Message Sent? Show the 'Thank You' message and hide the form 
     { 
      result = '<div class="notification_ok">Your message has been sent. Thank you!<br> <a href="#" onclick="freset();return false;">send another mail</a></div>'; $("#fields").hide(); 
     } 
     else { 
      result = msg; 
     } 
     $("#note").html(result); 
     } 
    }); 
    return false; 
    }); 
}); 

function freset() 
{ 
    $("#note").html(''); 
    document.getElementById('ajax-contact-form').reset(); 
    $("#fields").show(); 
} 

</script> 

양식에 contact.php가 있으며 그 내용은 CAN BE SEEN HERE입니다. Contact.php는 contact_config.php (파일 내용은 CAN BE SEEN HERE)와 functions.php (내용은 CAN BE SEEN HERE)의 포함을 요구합니다. 그래서

<?php 
// To 
define("WEBMASTER_EMAIL", '[email protected]'); 
?> 

:

내가 contact_config.php에 의도 된 송신/수신 이메일 주소를 배치 버튼을 제출하는 이유

<?php 
// To 
define("WEBMASTER_EMAIL", '[email protected]'); 
?> 

당신이 클릭에 응답하지 않는 조언을 주시겠습니까 및 왜 아무 메일도 보내지 못했습니까? 나는 이전에 이런 형태의 형식을 사용 해본 적이 없으며, 내가 다른 것을 편집 할 의도가 있다고 확신하는 동안, 나는 무엇을 어디서 편집 해야할지에 대해 상실감에 처했습니다. (나는 captcha가 올바르게 입력되었는지 확인하기 위해 세심한주의를 기울였으며 오류 메시지 나 성공 메시지도받지 못했습니다. 문의 양식을 통해 메시지를 제출할 때 아무런 반응이 없습니다.)

+0

"클릭에 반응이 없습니다"라는 메시지가 확실합니까? 해야하는 것처럼 보입니다. 콘솔에 넣었습니까?log()를 호출하여 "submit"핸들러가 실행 중인지 확인합니다. 브라우저 콘솔을 검사하여 오류가 있는지 확인 했습니까? $ .ajax() 메서드의 "error"콜백을 처리하지 않습니다. 따라서 호출에서 HTTP 오류가 발생해도 응용 프로그램에서는 볼 수 없지만 콘솔에서는 나타날 수 있습니다. – ADyson

+0

@ADyson 콘솔 로그를 지우고 동작을 다시 시도했지만 favicon에 관한 한 가지 문제 만 발생했습니다 (Firefox에만 있었으며 Chrome에는 아무 것도 없습니다). 나는 이번에 시도했는데, 의도적으로 잘못된 captcha를 입력하고 그것이 잘못되었다는 오류 메시지를 받았다. 그러나 모든 정보를 올바르게 입력하고 제출을 클릭하면 아무런 조치가 없습니다. 받은 편지함에 도착한 항목이 없습니다. 죄송 해요; 나는 console.log() 호출을 넣는 방법을 모른다. –

+0

console.log는 브라우저 콘솔에 출력을 쓰는 자바 스크립트 명령입니다. 그래서 당신은 다음과 같은 것을 할 수 있습니다 : $ ("# ajax-contact-form") submit (function() {console.log ("submit handler"); // etc' – ADyson

답변

0

의견이 솔루션은 다음과 같은 라인을 따라입니다 :

가) 변경 양식 태그

<form id="ajax-contact-form" action="javascript:alert('success!');"> 

에서 버전이

<form id="ajax-contact-form" action="contact.php" method="post"> 

에 invalid - 액션은 폼이 데이터를 보낼 곳을 지정해야하며 포스트 백을 강요하기 위해서는 메서드가 필요합니다 (그렇지 않으면 PHP가 처리 할 설정이없는 GET을 사용합니다 ( $_POST 변수를 읽음) .

b) $_SESSION['captcha_keystring']$_POST["capthca"]의 값을 확인하여 실제로 생각한 내용이 포함되어 있는지 확인하십시오. 예 :

(단지 디버깅의 목적을 위해 - 생산 사용을 위해이에 방치하지 마세요!) :

$error .= "Captcha keystring: ".strtolower($_SESSION['captcha_keystring']); 
$error .= " User-entered captcha: ".strtolower($_POST['capthca']); 

if(isset($_SESSION['captcha_keystring']) && strtolower($_SESSION['captcha_keystring']) != strtolower($_POST['capthca'])) 
{ 
    $error .= "Incorect captcha.<br />"; 
} 

또한 HTML의 보안 문자 텍스트 상자는 당신의 PHP $_POST["capthca"]에 맞게 올바른 이름 속성 (name="capthca")가 있는지 확인하십시오.

관련 문제