2013-03-15 2 views
2

jQuery를 처음 사용합니다. 문의 양식을 제출하려고하는데, 디스플레이에 피드백 메시지를 보내주십시오. NetTuts +에서 자습서를 보았습니다. 내 양식이 제출되지 않았습니다. 여기 내 코드입니다 :jQuery/Ajax 문의 양식이 작동하지 않습니다.

jQuery를

<script src="jquery.js"></script> 
<script> 
    $(document).ready(function() { 
     $('.error').hide(); 
     $("#submitButton").click(function() { 
      $('.error').hide(); 
      var name = $("input#name").val(); 
      if (name == "") { 
       $("label#name_error").show(); 
       $("input#name").focus(); 
       return false; 
      } 
      var email = $("input#email").val(); 
      if (email == "") { 
       $("label#email_error").show(); 
       $("input#email").focus(); 
       return false; 
      } 
      var companyName = $("#usermessage").val(); 
      if (companyName == "") { 
       $("label#message_error").show(); 
       $("input#usermessage").focus(); 
       return false; 
      } 
      var subject=$("#subject option:selected").text(); 
      var dataString = 'name='+ name + '&email=' + email + '&message=' + companyName; 
      //alert (dataString);return false; 
      $.ajax({ 
       type: "POST", 
       url: "mailer.php", 
       data: dataString, 
       success: function() { 
        $('#contact_form').html("<div id='message'></div>"); 
        $('#message').html("<h2>Contact Form Submitted!</h2>") 
         .append("<p>We will be in touch soon.</p>") 
         .hide() 
         .fadeIn(1500, function() { 
          $('#message').append("Thank you"); 
         }); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 


PHP

<?php 
    $mailTo = '[email protected]'; 
    $name = htmlspecialchars($_POST['name']); 
    $mailFrom = htmlspecialchars($_POST['email']); 
    $subjectNumber = htmlspecialchars($_POST['subject']); 
    $message_text = htmlspecialchars($_POST['msg']); 
    switch ($subjectNumber) 
    { 
     case 0: 
      $subject='Sales'; 
      break; 
     case 1: 
      $subject='Careers'; 
      break; 
     case 2: 
      $subject='Other'; 
      break; 
    } 
    $dataString=htmlspecialchars($_POST['dataString']); 
    //$message = 'From: '.$name.'; Email: '.$mailFrom.' ; Message: '.$message_text; 

    $sendcon=mail($mailTo, $subject, $message); 
    if (isset($_GET["ajax"])) { 
     echo $sendcon ? "success" : "error"; 
    } else { 

} 

?> 

문제는 제출 버튼을 누르면에 그 인은 아무 일도 발생하지 않습니다. 자바 스크립트 콘솔에는 오류가 없습니다. 아파치의 오류 로그에 PHP Notice: Undefined index: dataString이 나와 있기 때문에 제 PHP가 올바르지 않고 Ajax 데이터를 듣지 않는다고 생각합니다.

어디로 가고 있습니까? 감사

는 편집 : 나는 우분투 시스템에 로컬 호스트에서이 작업을 실행하고, 나는 메일 서버를 설정하고

+0

크롬 -> 네트워크로 가서 "제출"을 클릭하면, 의뢰. 서버로 데이터를 올바르게 전달하는 것처럼 양식이 보이나요? –

+0

HTML 양식 코드 게시 – Samy

+1

ajax 호출에서 데이터로 설정 한 url에 dataString이 없습니다. – EmCo

답변

0

다음과 같은 시도해야 테스트 이메일로 테스트 :

$.post("mailer.php", { name: "John", email: "[email protected]" }); 
+0

안녕하세요 ... 링크 주셔서 감사합니다 ... 하지만이 [link] (http://www.catchmyfame.com/2012/03/05/whats-the-best-jquery)에서 json 메서드를 사용하여 종료되었습니다. -method-for-retrieving-ajax-data /) – lazyprogrammer

0

양식 코드를 볼 수 있다면 유용 할 것입니다. 여기에 자습서를 추가했습니다. http://blog.fraser-hart.co.uk/ajax-contact-form-tutorial/

파일을 다운로드하여 제공 한 파일과 비교해 볼 수 있습니다. 당신이 무엇이 작동하는지에 대해 질문이 있고 올바른 방향으로 당신을 가리킬 것이면 알려주세요.

+1

안녕하세요 ... 링크 주셔서 감사합니다 ... 하지만이 [link] (http://www.catchmyfame.com/2012)에서 json 메서드를 사용하여 끝났습니다./03/05/whats-the-best-jquery-method-for-retrieving-ajax-data /) – lazyprogrammer

+0

probs가 없습니다. 아무것도 붙어 있다면 알려주세요 – Fraser

+0

Ajax [다시] (http://stackoverflow.com/questions/15826776/ajax-php-not-working-correctly)가 붙어 있습니다. – lazyprogrammer

관련 문제