php - 在一个查询中将多个表作为单独的对象获取

标签 php mysql ajax json

我正在制作一个界面,其中第一个下拉列表中的选择决定了后续 6 个下拉列表中可用的选项。

每个下拉列表都从表格中获取其值和显示名称,如下所示:

        $arr = array();
        $rs = mysql_query("SELECT * FROM sn_roles");
        while($obj = mysql_fetch_object($rs)) {
            $arr[] = $obj;
        }
        $response = '{"roles":'.json_encode($arr).'}';
        echo $response;

并获取 json 编码。

我想要做的是从多个表中选择 id 和 name,并获取每个表的 json 对象集合。

最佳答案

您需要对每个下拉选项使用ajax,并将特定表返回的json对象存储到javascript对象

     <select name="selector1" id="selector1" onChange="getoptions();" 
            <option value="1">--Select--</option>
            <option value="2">option1</option>
            <option value="3">option2</option>
            <option value="4">option3</option>
   </select>
   <select name="selector2" id="selector2">
    </select>
    <select name="selector3" id="selector3">
    </select>

下拉菜单的 JavaScript 代码如下

function getoptions(){

$('#selector2').html('<option value="">--Select--</option>');
$('#selector3').html('<option value="">--Select--</option>');
var selector1 = $('#selector1').val();
jQuery.get('getdropAjax.php', {'_action_':'GetDropValue', Selector1val : selector1 }, function(r) {
    for (var i in r.forselector2)
    {
        $('#selector2').append('<option value="'+i+'">'+r.forselector2[i]+'</option>');
    }
    for (var i in r.forselector3)
    {
        $('#selector3').append('<option value="'+i+'">'+r.forselector3[i]+'</option>');
    }
}, 'json');
}

你的 php 代码将是这样的

<?php
$data = array();
switch ( $_GET['_action_'] ){
case 'GetDropValue':
$arr1 = array();
    $rs = mysql_query("SELECT `colname` FROM sn_roles");
    while($obj = mysql_fetch_object($rs)) {
        $arr1[] = $obj->colname;
    }
$data['forselector2'] = $arr1;
$arr2 = array();
    $rs = mysql_query("SELECT `colname` FROM table2");
    while($obj = mysql_fetch_object($rs)) {
        $arr2[] = $obj->colname;
    }
$data['forselector2'] = $arr2;
return json_encode($data);
?>

关于php - 在一个查询中将多个表作为单独的对象获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585241/

相关文章:

javascript - 在 PHP 中的 AJAX post 上获取空值

PhpSpreadSheet 奇怪的输出

Mysql过滤双日期

java - SQL:从executeUpdate获取自动递增列的值

javascript - 每 5 秒刷新一次 JSON 填充图表的内容

javascript - jQuery ajax beforeSend 阴影 `$.ajaxSetup` 之一,如何级联它?

javascript - 如何制作带有自动重定向的登录页面?

php - 从 Symfony 命令调用服务失败并出现 "The container cannot be retrieved as the application instance is not yet set."错误,为什么?

php - 是否可以将 php 代码插入 ' header("Location : example. php") ' 命令?

ajax - 如何使用Chrome查看待处理的AJAX请求