Ajax Foreach到val()

问题描述 投票:0回答:1

我想问一下对val()的ajax响应。我有JSON这样的数据]

{"details":{"id": 10,"name": John Doe,"hobbies": [{"id": 1,"name": "Football"},{"id": 2,"name": "Badminton"},{"id": 3,"name": "Running"}],"dob": 1989-12-31}}

我的Ajax:

$.ajax({
    type: 'POST',
    url: "{{ route('askdata') }}",
    dataType: 'json',
    data: {
        'id': $('#member_id').val(),
    },
    success: function(data) {
        $('#id').val(data.details.id);
        $('#name').val(data.details.name);
        $('#dob').val(data.details.dob);
        $('#hobbies').val(JSON.stringify(data.details.hobbies, ['name']));
    }
});

上面有ajax,我在这样的爱好输入中获得了价值:

[{"name":"Football"},{"name":"Badminton"},{"name":"Running"}]

如何仅获取橄榄球,羽毛球,跑步这样的值?]

谢谢

javascript jquery ajax
1个回答
1
投票

您当前的逻辑是从hobbies数组构建JSON字符串。要获得所需的输出,可以使用map()构建一个爱好名称数组,然后可以将join()一起形成一个字符串:

let data = {"details":{"id": 10,"name": 'John Doe',"hobbies": [{"id": 1,"name": "Football"},{"id": 2,"name": "Badminton"},{"id": 3,"name": "Running"}],"dob": '1989-12-31'}}

$('#hobbies').val(data.details.hobbies.map(o => o.name).join(', '));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="hobbies" />

0
投票
[{"name":"Football"},{"name":"Badminton"},{"name":"Running"}]

在对象数组中,您可以按array[0]["name"]来访问

© www.soinside.com 2019 - 2024. All rights reserved.