通过AJAX发送数组数据

3
我有以下问题。
我正在尝试在选中复选框时发送 AJAX 调用。 复选框的值将被发送到我的 PHP 文件,该文件将检查数据库以获取该值的所有数据。
问题是,我想在页面上显示数据,但不知道该怎么做。
以下是我的代码:
HTML:
<input type="checkbox" name="category[]" id="1" value="1" /> <label for="1">Administratieve Sector</label><br />
<input type="checkbox" name="category[]" id="2" value="2" /> <label for="2">Bouw Sector</label><br />
<input type="checkbox" name="category[]" id="3" value="3" /> <label for="3">Financiele Sector</label><br />
<input type="checkbox" name="category[]" id="4" value="4" /> <label for="4">Gezondheidszorg Sector</label><br />
<input type="checkbox" name="category[]" id="5" value="5" /> <label for="5">Horeca- en toerisme Sector</label><br />

JQuery:
function calculate() {

    var arr = $.map($('input:checkbox:checked'), function(e, i) {
        return +e.value;
    });

    $.ajax({ 
        url: '/company/test.php',
        data: {key: arr, i: 1},
        type: 'post',
        success: function(output) {
            obj = JSON.parse(output);

            console.log(obj);
            // Don't know where to go next
        }
    });
}

calculate();

$("div[class='col-md-12'").delegate("input:checkbox[name='category[]']", 'click', calculate);

PHP:
<?php

require_once '../core/init.php';

$v = new Vacatures();

if(isset($_POST['key']) && isset($_POST['i']) && !empty($_POST['key'])) {

    $key = $_POST['key'];
    $i = $_POST['i'];

    $vacs = $v->getFiltered($key, $i);

    echo json_encode($v->data());
    exit();
}

require_once VIEW_ROOT . '/company/test_view.php';

更新(obj的内容)
[Object]0: Objectcategory: "1"company: "c1"content: "test"foto: "test"id: "2"region: ""title: "Test"__proto__: Objectlength: 1__proto__: Array[0]

你能展示一下 obj 的内容吗? - Muhammad Sumon Molla Selim
@MuhammadSumonMollaSelim 已添加到帖子中。 - Chris
2个回答

0

类似于

$('body').append('<div><ul id="output"></ul></div>');
obj.data.forEach(function(x) {
$('#output').append("<li>"+x+"</li>");
});

编辑:

  • 里面有一些错别字
  • forEach或$.each仅适用于JSON数组,因此您必须查看obj内部的内容

很遗憾,这个不起作用。Uncaught TypeError: Cannot read property 'forEach' of undefined - Chris
请在此处使用for循环 for(var key in obj){ var current = obj[key] },了解更多信息请访问 - https://dev59.com/xWMk5IYBdhLWcg3w-Ciq - aftamat4ik

0
我使用以下的AJAX调用修复了它:
$.ajax({ 
        url: '/company/test.php',
        data: {key: arr, i: 1},
        type: 'post',
        dataType: "json",
        success: function(output) {

            $.each(output, function(key, element) {
                $('#output').append("<li>"+element.title+"</li>");
            });
        }
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接