如何在AJAX调用中返回多个值?

时间:2016-12-20 21:51:54

标签: php ajax

假设我想将两种不同类型的数据输出到我的两个div #count_boys#count_girls。为了澄清我的目标,我在我的html调用中添加了data.boysdata.girls。并非它有效,但它有希望澄清我想要实现的目标。

我们假设我的数据库中有男孩和女孩作为我的MySQL数据库中的表列。

function countlist() {
    var generic;
    $.ajax({
        method: "GET",
        url: "ajaxcalls/numbercall.php?",
        data: generic,
        success: function(data) {
            //general contractors//
            $('#count_boys').html(data.boys);
            $('#count_girls').html(data.girls);
        } 
    });
}

现在,我的 numbercall.php 看起来像这样:

<?php
$con = mysqli_connect('localhost', 'root', '', 'coolkidsclub');
$query = mysqli_query($con, "SELECT * FROM members");

$num = mysqli_num_rows($query);
echo "$num";
mysqli_close($con);
?>

据我所知,使用PHP编码可以解决这个问题。但我不完全确定如何使用它。

1 个答案:

答案 0 :(得分:3)

要将数据返回到javascript AJAX调用,请使用JSON编码数据。

您所做的只是创建一个PHP数据结构,数组或对象,然后使用An apple is red将其转换为JSON字符串,以便发送回javascript。

json_encode()

现在更改javascript告诉它将返回JSON,它将自动从JSON字符串转换为javascript对象

<?php

$con = mysqli_connect('localhost', 'root', '', 'coolkidsclub');
$query = mysqli_query($con, "SELECT count(*) as cnt
                             FROM members 
                             WHERE gender = 'boys'");

$row = mysqli_fetch_assoc($query);
$boys = $row['cnt'];

$query = mysqli_query($con, "SELECT count(*) as cnt
                             FROM members 
                             WHERE gender = 'girls'");

$row = mysqli_fetch_assoc($query);
$girls = $row['cnt'];

echo json_encode( array('boys'=>$boys, 'girls'=>$girls) );
?>