2013-02-17 61 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