2011-08-17 129 views
1

我的腳本運行正常,並通知我的數據被保存。但爲了調試的原因,我希望看到PHP(「Procees.php」)響應以及html格式。 我可以看到它在螢火,但我不知道怎麼了把它使用jQuery。我的代碼如下;jQuery的AJAX沒有PHP響應

  var dataString ='doctype='+ doctype + '&paytype=' + paytype + '&docno=' + docno + '&bookno=' + bookno + '&prname=' + prname +'&pename='+pename+'&paydate='+paydate+'&inpdate='+indate 
     +'&e1='+e1 +'&e2='+e2 +'&e3='+e3 +'&e4='+e4 +'&e5='+e5 +'&e6='+e6 +'&e7='+e7 +'&e8='+e8 
     +'&accname1='+accname1 +'&accname2='+accname2 +'&accname3='+accname3 +'&accname4='+accname4 +'&accname5='+accname5 +'&accname6='+accname6 +'&accname7='+accname7 +'&accname8='+accname8 
     +'&dr1='+dr1 +'&dr2='+dr2 +'&dr3='+dr3 +'&dr4='+dr4 +'&dr5='+dr5 +'&dr6='+dr6 +'&dr7='+dr7 +'&dr8='+dr8 
     +'&cr1='+cr1 +'&cr2='+cr2 +'&cr3='+cr3+'&cr4='+cr4 +'&cr5='+cr5 +'&cr6='+cr6 +'&cr7='+cr7 +'&cr8='+cr8 +'&ref='+ref; 


     //alert (dataString);return false; 
     $.ajax({ 
     type: "POST", 
     url: "bin/process.php", 
     data: dataString, 
     cache:false, 
     datatype: 'json',    
     success: function(data) { 

     $('#display').html("<h2>Data submitted!</h2>") 
     .append("<p>Wait........</p>") 
     .hide() 
     .fadeIn(1500, function() { 
     $('#display').append("<img id='checkmark' src='images/check-black.jpg' />"); 
     $('#display').html("<h3>Being Processed...</h3>") 
     .fadeIn(1500, function() { 
     $('#display').append("Saved <img id='checkmark' src='images/check-black.jpg' />") 
     $('#thisfrm').get(0).reset(); 
     $("#indate").val(indate) 






     }); 

     }); 
     } 
     }); 


     return false; 

我的PHP回聲

   echo 'This is processing file.\n'; 


      $doctype = $_REQUEST['doctype']; 
      $paytype = $_REQUEST['paytype']; 
      $docno = $_REQUEST['docno']; 
      $bookno = $_REQUEST['bookno']; 
      $prname = $_REQUEST['prname']; 
      $pename = $_REQUEST['pename']; 
      $paydate = $_REQUEST['paydate']; 
      $inpdate = $_REQUEST['inpdate']; 
      $ref = $_REQUEST['ref']; 


      echo $doctype."<br>"; 
      echo $paytype."<br>"; 
      .... 
      ... and so on 

,但它沒有顯示anywahere網頁上。

預先感謝任何幫助。

+0

您是否注意到Firebug中顯示響應HTML格式的選項卡? – JJJ

回答

1

即AJAX請求期間由PHP輸出的數據將在你success回調函數的data變量。如果你想將數據附加到你的頁面上,你需要在你的成功功能中這樣做。

$.ajax({ 
    type: "POST", 
    url: "bin/process.php", 
    data: dataString, 
    cache:false,   
    success: function(data) { 
     // the data variable contains all PHP output during this request 
     $('#display').html(data); 
    } 
}); 

另外請注意,您的腳本當前指定的,它是一個JSON請求 - 這jQuery的應該把輸出作爲JSON數據。但是,您正在輸出PHP代碼片段中的text/html數據。無論是)附加你的HTML到一個變量,然後調用print json_encode($mydata);,或b)從請求刪除datatype財產。 jQuery將「自動檢測」響應類型。上面的例子假設你不改變PHP代碼,下面是關於如何正確使用JSON而不是細節(改變PHP需要)。

要做到JSON的方法,而是採用echo,使用一個變量:

$html = ''; 
$html .= 'Doctype: '.$doctype; 
$html .= 'Something elese: '.$something_else; 
// etc... 
die(json_encode(array('html'=>$html))); 

那麼你的jQuery的AJAX功能如下:

$.ajax({ 
    type: "POST", 
    url: "bin/process.php", 
    data: dataString, 
    cache:false, 
    datatype: 'json',   
    success: function(data) { 
     $('#display').html(data.html); 
    } 
}); 
+0

克里斯我很高興迅速得到答案。非常感謝 – user837168

3

你需要json_encode你的迴應,因爲你的jQuery期待JSON!

echo json_encode(array("doctype"=>$doctype, "paytype"=>$paytype)); 
0

將這個你成功函數中。

$('#display').append(data);