【问题标题】:AJAX Retrieve Value With SerializeArray - [Laravel]AJAX 使用 SerializeArray 检索值 - [Laravel]
【发布时间】:2018-06-13 18:58:08
【问题描述】:

我正在提交表单并希望将表单信息传递到控制器中,尽管当我执行serializeArray 时我无法访问控制器中的任何信息。

<form class="#" action="#" method="post" id="addLink">
    <input class="form-control full-width" type="text" name="link"></input>
    <input type="submit" value="Add">
</form>


$('#addLink').on('submit', function(e) {
    e.preventDefault();

    var ser = $(this).serializeArray();
    var csrf = "{{ csrf_token() }}"

    $.ajax({
        url: '/profile/addlink',
        type: 'post',
        dataType: 'json',
        headers: {
            'X-CSRF-TOKEN': csrf,
        },
        data: {
            "_token": csrf,
            data : ser
        },
        success: function(data) {
         console.log(data)
        },
        error: function(data){
         console.log('error');
        },
    });

});

控制器

public function addLink(Request $request)
{
    $result = json_encode($request->data, true);
    echo json_encode($result);
}

结果:

[{"name":"link","value":"http:\/\/test.com"}]

我想提取“链接”

【问题讨论】:

    标签: php ajax laravel laravel-5 laravel-4


    【解决方案1】:

    您需要使用json_decode() 来提取值,并且在发送数据时,您应该使用JSON.stringify()。所以代码应该是:

    JS代码:

    data: JSON.stringify(ser);
    

    PHP 代码:

    $result = json_decode($request->data, true);
    print_r($result); // array of values
    

    【讨论】:

    • Array ([0] => Array ([name] => link [value] => dasd))
    • 我怎样才能让它成为数组('link'=>'http/daks')
    • 您可以使用$flat = call_user_func_array('array_merge', $array); 后跟print_r($flat);
    【解决方案2】:

    您可以在 JS 中使用 serialize() 而不是 serializeArray()

    var ser = $(this).serialize();
    

    导致以如下格式发送数据

    link=value
    

    在您的控制器中,您可以使用parse_str() 提取link

    parse_str($request->data, $output);
    echo $output['link']; // Here you could get the link's value
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 2019-11-04
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多