【问题标题】:Send array data through AJAX通过 AJAX 发送数组数据
【发布时间】:2016-10-28 12:24:08
【问题描述】:

我有以下问题。

我正在尝试在选中checkbox时发送AJAX呼叫。 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]

【问题讨论】:

  • 可以显示obj的内容吗?
  • @MuhammadSumonMollaSelim 添加到帖子中

标签: php jquery arrays ajax


【解决方案1】:

我使用以下 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>");
            });
        }
    });

【讨论】:

    【解决方案2】:

    类似

    $('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
    • 在这里使用 for 循环 for(var key in obj){ var current = obj[key] } 在这里查看更多 - stackoverflow.com/questions/18804592/…
    猜你喜欢
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2016-10-11
    • 2015-08-21
    • 1970-01-01
    • 2013-01-09
    • 2017-04-20
    • 1970-01-01
    相关资源
    最近更新 更多