填充数据库中的关联选择

时间:2011-07-08 15:41:46

标签: php javascript mysql

这是我的问题:我的Web应用程序中有两个选择字段。

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

<?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 version 
  FROM Appversions 
 WHERE platform = <choice made in first select>;

我知道我需要使用带有onChange函数调用的JavaScript来做到这一点,但我无法弄清楚该函数应该是什么样的,或者它将如何访问我的查询结果。

1 个答案:

答案 0 :(得分:0)

通常我有这个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 ();