【问题标题】:POST data from View to Controller via AJAX in Laravel 5在 Laravel 5 中通过 AJAX 将数据从视图发布到控制器
【发布时间】:2017-01-17 16:59:56
【问题描述】:

数据

我有一个数据

var data = [];
data['upnp_enabled'] = $("#upnp-switch").val();

当我console.log(data); 我得到[upnp_enabled: "true"]


阿贾克斯

我尝试通过 AJAX

向我的控制器创建 PUT
var ajax = $.ajax({
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')},
    url: '/' + currentCPE + '/vlan/' + currentPageVLAN + '/upnp',
    type: 'PUT',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: data
    //data: JSON.stringify(data) <---- I even tried this, same result !!
});
ajax.done(function (data) {
    parseMsgData(data, "Setting saved");
    console.log(data);
});

控制器

然后在我的控制器中,我有这个

public function update_upnp($cpe_mac, $vlan_id){

    $inputs = Input::all();
    dd($inputs);

}

我不断进入我的网络标签 > XHR

[]


我希望在我的dd($inputs); 中看到类似的内容

[upnp_enabled: "true"]


有人可以填写我遗漏的吗?

【问题讨论】:

  • 参见 var p=$("#upnp-switch").val();控制台.log(p);你得到了什么结果?
  • 你的路线是怎么放的?
  • 代替 dd ,使用 var_dump($inputs);看看你得到了什么结果?
  • @Borna : 你的p 应该返回这个[upnp_enabled: "true"]
  • @OrlandoCharles :这是我的路线 Route::put('/{cpe_mac}/vlan/{id}/upnp', 'NetworkController@update_upnp'); ,它正在工作,因为我知道我的 dd 正在运行。但它吐出了错误的数据。

标签: php arrays json ajax laravel


【解决方案1】:

好的。首先,请求应该是这样的(注意数据是 JSON 而不是数组):

var data = {};
data['upnp_enabled'] = $("#upnp-switch").val();

var ajax = $.ajax({
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('value')},
    url: '/' + currentCPE + '/vlan/' + currentPageVLAN + '/upnp',
    type: 'PUT',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: data
    //data: JSON.stringify(data) <---- I even tried this, same result !!
});
ajax.done(function (data) {
    parseMsgData(data, "Setting saved");
    console.log(data);
});

在你的控制器中,你可能需要有类似的东西:

use Illuminate\Http\Request;

public function update_upnp($cpe_mac, $vlan_id, Request $request){

    return $request->input();
}

希望对你有帮助!

【讨论】:

    【解决方案2】:

    在您的控制器中,您需要以下内容

    1. 确保您使用的是请求类。 :

      使用 App\Http\Requests;

    2. 您需要通过您的方法接受请求作为参数

          public function update_upnp($cpe_mac, $vlan_id, Request $request){
            dd($request->attribute);
          }
      

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2021-03-25
      • 2016-03-28
      • 2020-08-26
      相关资源
      最近更新 更多