【问题标题】:ajax passing string getting arrayajax传递字符串获取数组
【发布时间】:2016-05-27 12:50:45
【问题描述】:

我正在使用 Laravel 框架,并且正在尝试创建 Ajax 请求,因此我可以将表单数据发送到控制器。 问题是,我正在传递一个字符串,但是在控制器中,当我尝试 JSON_decode 时,它​​说我给它一个数组而不是一个字符串。 我做错了什么?

查看(ajax)

function getData() {
   var name = $('#name').val();
   var tin = $('#tin').val();
   var password = $('#password').val();
   var currency = $('#currency').val();

   var data = {"name": name, 'tin': tin, 'password': password, 'currency': currency};
   var obj = JSON.stringify({"name": name, 'tin': tin, 'password': password, 'currency': currency});
   console.log(obj);
   $.ajax({
      type: "POST",
      url: "teste",
      data: obj,
      success: function (result) {
        alert(result);
      }
   });
}

控制器:

 $data = $_POST;
    //$string = json_encode($data);
    $test = json_decode($data);
    echo $test->name ;
    //echo "data: $string, gravada com sucesso!";
    die;

如果有人可以帮助我...

刚刚解决。

$.ajax({ 
   type: "POST",
   url: "teste",
   data: {"name": name, 'tin': tin, 'password': password, 'currency': currency},
   success: function (result) {
      alert(result);
    }
});

在控制器中,我编码然后解码..它工作 谢谢:)

【问题讨论】:

  • $_POST 是一个数组,把json_decode改成json_encode
  • 它说我正在尝试获取非对象的属性
  • 我刚开始学习 laravel

标签: php jquery ajax laravel-5.2


【解决方案1】:

无需使用JSON.stringify

去掉JSON.stringify,直接传data

或者如果你想读取json格式,那么

url: "1.php", data: {"key":obj},

【讨论】:

    【解决方案2】:

    在您的示例中,如果您想传入 json 字符串,则需要将 OBJ 作为参数传递:

    <script type="text/javascript">
    var data = {"name": name, 'tin': tin, 'password': password, 'currency': currency};
    var obj = JSON.stringify({"name": name, 'tin': tin, 'password': password, 'currency': currency});
    
    $.ajax({
    type: "POST",
    url: "<?=g('base_url')?>home/index",
    data: "obj="+obj, // add as a param
    success: function (result) {
    alert(result);
    }
    });
    </script>
    

    在 PHP 中,您可以将$_POST 中的对象作为:

    $data = $_POST['obj'];
    $test = json_decode($data);
    echo $test->name;
    

    更新:

    您已在问题中更新的第二个解决方案。

    【讨论】:

      猜你喜欢
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多