繁体   English   中英

从数据库填充关联 select

[英]Populate an associative select from a database

这是我的问题:我的 web 应用程序中有两个 select 字段。

第二个取决于对第一个所做的选择。 第一个是从我的数据库中填充的经典:

<?php
    //connection to database in an include file
    $query = "SELECT DISTINCT platform 
                FROM Appversions";

    $res = mysql_query($query);
    while($row = mysql_fetch_array($res)) {
       echo "<option value=\"\"" . $row['platform'] . "</option>\n";
    }
?>

这工作得很好。

但随后我需要使用如下所示的查询填充我的第二个 select:

SELECT version 
  FROM Appversions 
 WHERE platform = <choice made in first select>;

我知道我需要使用 JavaScript 和 onChange function 调用来做到这一点,但我无法弄清楚 function 应该如何访问我的查询的结果。

通常我有这个 jquery 代码:

$('#select1').change(function(){
    if($(this).val() == ''){
        $('#select2').attr('disabled', 'true');
    }else{

        var select1 = $(this).val();
        $.getJSON('index.php',
                {
                    option: "com_spin",
                    controller: "guest",
                    task: "getProvincieByRegionId",
                    idRegione: idRegione
                },
                function(json){
                    $('#select2').html(json.html);

                }   
        );
        $('#select2').removeAttr('disabled');
    }
});

在 php 我有这样的东西(基本上我返回 html 的选项:

    Zend_Loader::loadClass ( 'Zend_Json' );
    $idRegione = JRequest::getVar ( "idRegione" );
    $modelProvince = new Spin_lkpprovincia ();
    $provincie = $modelProvince->getElencoProvinciePerRegione ( $idRegione );
    $html = "<option value=''>Selezionare una voce</option>";
    foreach ( $provincie as $provincia ) {
        $html .= "<option value='" . $provincia ['idProvincia'] . "'>" . $provincia ['nome'] . "</option>";
    }
    $json = array (
                success => "OK", 
                html => $html );

    $json = Zend_Json::encode ( $json );
    echo $json;
    die ();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM