2013-02-17 58 views
27

所以,這裏是我的問題,我使用AJAX(jQuery)將表單發佈到process.php,但該頁面實際上需要回顯響應,如appleplum。我不知道如何從process.php採取的應對和有它保存爲一個變量...使用AJAX獲取PHP文件的響應

下面的代碼我到目前爲止:

<script type="text/javascript"> 
     function returnwasset(){ 
      alert('return sent'); 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: somedata; 
       success function(){ 
        //echo what the server sent back... 
       } 
      }); 
     } 
    </script> 

也將我需要呼應響應json中的process.php?或將純文本罰款?

對不起,如果這聽起來像一個愚蠢的問題,這是我第一次在Ajax中做這樣的事情。

PS:如何在上面的代碼中命名POST請求?

+5

不是一個愚蠢的問題。 – 2016-02-26 14:46:31

回答

32

<?php echo 'apple'; ?>幾乎所有你需要在服務器上。

作爲JS端,服務器端腳本的輸出作爲參數傳遞給成功處理函數傳遞,所以你必須

success: function(data) { 
    alert(data); // apple 
} 
+0

確定,虐待嘗試了這一點 – user115422 2013-02-17 06:08:53

+0

我使用這個:'<腳本類型= 「文/ JavaScript的」> \t \t \t功能returnwasset(){ \t \t \t \t警報( '迴歸派'); \t \t \t \t $阿賈克斯({ \t \t \t \t \t類型: 「POST」, \t \t \t \t \t網址:「過程。PHP」, \t \t \t \t \t數據: 「你好」, \t \t \t \t \t數據類型: '文本', \t \t \t \t \t成功函數(響應){ 警報(反應); // 什麼呼應發送回服務器... } \t \t \t \t}); \t \t \t} \t \t'但由於某種原因,它不工作......我真的把服務器設置爲迴應蘋果,但我的腳本甚至沒有做第一個警報(返回已設置),這是之前...是我的語法有什麼問題? – user115422 2013-02-17 06:12:48

+0

'success function'成功後缺少':'。您可以通過打開瀏覽器的JS /調試控制檯來檢查語法錯誤。 – 2013-02-17 06:14:16

13
<script type="text/javascript"> 
     function returnwasset(){ 
      alert('return sent'); 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: somedata; 
       dataType:'text'; //or HTML, JSON, etc. 
       success: function(response){ 
        alert(response); 
        //echo what the server sent back... 
       } 
      }); 
     } 
    </script> 
+0

謝謝你的回答,我給它一個upvote,現在我只需要決定誰來標記爲答案:) – user115422 2013-02-17 06:16:23

+3

「擁有權利的同時也被賦予了重大的責任。」本 - 帕克 – Ethan 2013-02-17 06:17:11

+0

對不起,但馬克先是回答了它,我認爲他應該將它標記爲答案,再加上他指導我後來。無論如何,我仍然給你一個upvote :)謝謝! – user115422 2013-02-17 06:19:41

9
在你的PHP文件

時,你迴應你的數據使用json_encode(http://php.net/manual/en/function.json-encode.php

eg

<?php 
//plum or data... 
$output = array("data","plum"); 

echo json_encode($output); 

?> 
在JavaScript代碼,當您的AJAX完成JSON編碼響應數據

可以變成一個JS陣列是這樣的:

$.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: somedata; 
       success function(json_data){ 
        var data_array = $.parseJSON(json_data); 

        //access your data like this: 
        var plum_or_whatever = data_array['output'];. 
        //continue from here... 
       } 
      }); 
22

好的做法是使用這樣的:

$.ajax({ 
    type: "POST", 
    url: "/ajax/request.html", 
    data: {action: 'test'}, 
    dataType:'JSON', 
    success: function(response){ 
     console.log(response.blablabla); 
     // put on console what server sent back... 
    } 
}); 

和PHP的一部分是:

<?php 
    if(isset($_POST['action']) && !empty($_POST['action'])) { 
     echo json_encode(array("blablabla"=>$variable)); 
    } 
?> 
+3

我會同意這個答案。你也可以在響應中包含多個變量,比如'array(「blablabla」=> $ variable,「success」=> true,「user_message」=「hello」)',然後簡單地在JavaScript中使用它們。 'response.success'。 – SharpC 2016-03-02 16:19:30

0
var data="your data";//ex data="id="+id; 
     $.ajax({ 
     method : "POST", 
     url : "file name", //url: "demo.php" 
     data : "data", 
     success : function(result){ 
       //set result to div or target 
       //ex $("#divid).html(result) 
     } 
    }); 
+1

如果您將「數據」視爲字符串,那麼實際數據將如何去? – Ramkee 2016-05-16 11:07:20