繁体   English   中英

AJAX,POST,JSON和PHP:我该怎么做?

[英]AJAX, POST, JSON, and PHP: How do I do it?

如何使用JSON数据格式通过类型为“ POST”的JavaScript通过$ .ajax()发送AJAX数据,以及如何通过PHP脚本(通过$ _POST ??)接收数据并将其放入数组中,所以我可以使用吗? 我已经踢了好几个小时了,不知道我在做什么错。 如果有人可以发布用于发送和接收JSON格式数据的JS和PHP代码,我将万分感谢!!!!

JS代码:

$.ajax({
                type: "POST",
                url: $(location).attr('protocol') + "//" + $(location).attr('hostname') + "/ajax/rate.php",
                data: {
                    "value1": 1,
                    "value2": 2,
                    "value3": 3,
                    "value4": 4,
                    "value5": 5
                },
                dataType: "json"
            });

PHP代码:

我只是使用$ _POST [“ value1”]等获取该值。 关于这一点,有没有一种方法可以使ajax请求改为GET并打开一个上面带有该GET数据的新窗口,以便我可以看到发生了什么?

这个想法是创建一个php页面,以JSON形式输出数据。 此数据从数组中获取,并使用json_encode函数回显。 使用jQuery中的$.ajax()方法,您可以向该页面发送请求,并在success:函数中处理数据。

例。

PHP-array.php

$array = ("flag" => 1); 
echo json_encode($array);

的JavaScript

$.ajax({
  url : '/array.php', // page containing JSON data
  dataType : 'json', // must be specified for JSON manipulation in success
  success : function(data) { 
       // this function is called if the call to test.php is successful
       // access the data using object dot syntax
       alert(data.flag); // should display '1'
  }
});

//通过这种方式将数据发送到服务器PHP-test.php

echo $_POST['data'];

的JavaScript

$.ajax({
  url : '/test.php',
  dataType : 'text', 
  type : 'post',
  data : { data : 'Hello, World!'},
  success : function(data)          
       alert(data); // should display 'Hello, World'
  }
});

据我所知,您不能以JSON格式发布数据。 仅作为查询字符串,例如GET。 但是,您可以从PHP脚本以JSON格式返回数据。

例如。

$.ajax({
 url: "script.php",
 dataType: 'json', // Tell jQuery/JS that the returned data from script.php is JSON format
 data: 'id='+Id, // will become $_POST['id'] with the value of Id (js var)
 success: function(data){
    // data is JSON formatted
 }

现在,在您的PHP脚本中,您将收到一个名为$ _POST ['id']的POST变量。 假设需要$ _POST ['id']从数据库中请求某个客户。 它的数据可以存储在数组中,然后进行json编码,然后使用ajax请求发送回页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM