2012-07-18 56 views
0

有一些奇怪的問題,當我使用$.post到一個php文件。文件本身沒有任何後期回聲後的數據「someresult」當我去$。員額的HTML()爲空...幫助PLZ出來

$('#podborform').submit(function(){ 
    var phone = $('#tour_selection_phone').val(); 
    if(phone != null && phone != '' && phone.length >= 7){ 
     var values = $(this).serialize(); 
     var qwer = String('captcha'); 
     var url = $(this).attr('action'); 
     $.post(url, values, 
      function(data) { 
       var content1 = $(data).html(); 
       //content = String(content); 
       //alert(qwer+' - '+content); 
       if(content1 == qwer){ 
        alert('Вы не правильно ввели код с картинки, попробуйте еще раз!'); 
       } 
       if(content1 == 'false'){ 
        alert('Извините произошла ошибка!'); 
       } 
       if(content1 == 'true'){ 
        alert('Ваша заявка успешно отправлена!'); 
       } 
      } 
     ); 
    }else{ 
     alert('Вы не ввели все обязательные поля!'); 
    } 
    return false; 
}); 

它連接到包含此PHP:

<?php 
class mailer{ 
    //var $fields = array(); 
    function __construct(){ 
     if($this->captcha()){ 
      $this->sendmail(); 
     }else{ 
      exit('false'); 
     } 
    } 
    function sendmail(){ 
     foreach($_POST as $key=>$post){ 
      $text .= $key.': '.$post.PHP_EOL; 
     } 
     if(mail("[email protected]", "the subject", $text, 
      "From: [email protected]\r\n" 
      ."Reply-To: {$_POST['email']}\r\n" 
      ."X-Mailer: PHP/" . phpversion())){ 
       exit('true'); 
      }else{ 
       exit('false_mail'); 
     } 
    } 
    function captcha(){ 
     require_once('recaptchalib.php'); 
     $privatekey = "123123"; 
     $resp = recaptcha_check_answer ($privatekey, 
             $_SERVER["REMOTE_ADDR"], 
             $_POST["recaptcha_challenge_field"], 
             $_POST["recaptcha_response_field"]); 

     if (!$resp->is_valid) { 
      // What happens when the CAPTCHA was entered incorrectly 
      echo 'captcha'; exit; 
     } else { 
      unset($_POST["recaptcha_challenge_field"], 
             $_POST["recaptcha_response_field"]); 
      return true; 
     } 
    } 
} 
    $mail = new mailer; 
?> 
+1

什麼是響應數據?如果使用firebug check'console.info(data);' – 2012-07-18 07:35:45

+0

你希望從服務器得到什麼類型的數據? – 2012-07-18 07:42:45

+0

字符串數據...我的意思是這個PHP文件,他們返回沒有標籤沒有任何htey只是返回'假'/'真'字符串...這就要與.html()在字符串中獲取,然後做一些事情..但是我得到null(( – mikrowelt 2012-07-18 07:48:52

回答

1

.html獲取包含HTML的

$('<div><img/></div>').html() // returns '<img/>' 
$('test').html() // returns null 

您可以直接使用data。它將包含作爲字符串的響應

if(data == qwer){ 
} 
if(data == 'true'){ 
} 
+0

對不起,它沒有幫助 – mikrowelt 2012-07-18 07:40:45

+0

我愛)))確實幫助) – mikrowelt 2012-07-18 07:55:57

1

您忘記物體郵包的結構的():

$mail = new mailer; 

應該

$mail = new mailer(); 
+0

它可以正常使用$ mail = new mailer;我的意思是PHP文件返回結果...所有的時間,但當我發佈jquery不顯示結果 – mikrowelt 2012-07-18 07:30:05

+1

大括號是可選的 – Thomas 2012-07-18 07:31:37