通过AJAX发送数组数据

时间:2016-06-26 11:04:13

标签: php jquery arrays ajax

我有以下问题。

每当检查AJAX时,我都会尝试发送checkbox来电。 checkbox的值将发送到我的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]

2 个答案:

答案 0 :(得分:0)

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

编辑:

  • 在那里有一些错字
  • forEach或$ .each仅适用于json数组,因此您必须查看obj中的内容

答案 1 :(得分: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>");
            });
        }
    });