2011-07-08 70 views
0

這是我的問題:我的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>; 

我明白,我需要使用JavaScript和一個onchange函數調用來做到這一點,但我不能找出那個函數應該是什麼樣子或者它如何訪問我的查詢結果。

回答

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(); 
+0

謝謝,我只好掏了一下成JQuery,但它是走的路(儘管不使用JSon)。 – talnicolas