使用php(和相同的名称参数)检索当前URL中的json参数

时间:2015-02-01 13:20:39

标签: php json

我发现很多问题都在处理这种情况,但没有一个像我一样。或者也许是因为我没有通过ajax发送正确的参数?

这个问题是以下of that issue

这是ajax代码

$('.valide').unbind().click(function (e) {
  e.preventDefault();
  var recupChoices= $('tr').map(function() {
    var $row = $(this);
    return {
        idenR: $row.data('id'),
        duree: $row.find($("select[name='chooseDuration']")).val()
    };
  }).get();

  choices = (JSON.stringify(recupChoices));

  $.ajax({
    type : "GET",
    url  : "ajax/order.php",
    dataType: "JSON",
    data : choices ,
    success: function(data) {
      // Show success or fail messages
    }
  });
});

我想我选择了标准值和第一个id,然后选择GET方法来查看URL参数。通过AJAX发送的URL将是:

http://[sitename]/ajax/order.php?[{%22idenR%22:1,%22duree%22:%221%22},{%22idenR%22:2,%22duree%22:%221%22}]

从那以后,我犯了一个错误?

然后我根本无法获取文件order.php中的参数。我试着这样做:

$currentURL= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$data = file_get_contents($currentURL);
var_dump(data);
// But it return "null"

我无法获得参数,或者之前我错了......但是在哪里?

1 个答案:

答案 0 :(得分:0)

我发现了我的错误。如果您遇到过这种情况,请记住您必须在发送的数据中添加参数。我错误地认为我已经在发送参数,而他们已经使用JSON进行编码。

在我的示例中,您只需在AJAX请求中添加名称(此处为“datas”),如此data : {datas : choice}

以下是工作代码

$.ajax({
  type : "GET",
  url  : "ajax/order.php",
  dataType: "JSON",
  data : {datas : choices} ,
  success: function(data) {
    // Show success or fail messages
  }
});