0

私は CodeIgniter を使用しており、JQuery を使用して 2 つのドロップダウンで onchange を設定する際に質問があります。コードは次のとおりです。

<?
function generateSelect($name = '', $options = array(), $code) {
    $html = '<select name="'.$name.' id="'.$name.'"">';
    foreach ($options->result_array() as $row) {
        if ($row[$name] == $code) {
        $html .= '<option value='.$row[$name].' selected>'.$row[$name].'</option>';
        } else {
        $html .= '<option value='.$row[$name].'>'.$row[$name].'</option>';
        }
    }
    $html .= '</select>';
    return $html;
}

echo '<div id="actype"><table cellpadding=2 cellspacing=2 border=1><tr><td>AC TYPE</td><td>'.generateSelect('actype', $query_1, $actype).'</td>';

echo '<div id="acreg"><tr><td>AC REG</td><td>'.generateSelect('acreg', $query_2, $acreg).'</td></div></table>';
?>

そして、これはJavaScriptです:

<script type="text/javascript">      
$(function() {           
// navigate to page on click event           
$('#actype').bind('change', function() { goToPage(); } );      
$('#acreg').bind('change', function() { goToPage(); } );      
});       

function goToPage() {
location.href = 'http://localhost/CAMP/CI/index.php/blog/show_package/'+$("#actype :selected").val()+'/'+$("#acreg :selected").val();
} 
</script> 

したがって、最初のドロップダウンが選択されると、ページはいくつかの uri セグメントを追加します。そして、そのセグメントに基づいて、いくつかのクエリが実行され、2 番目のドロップダウンのリストが生成されます。

問題は、2 番目のドロップダウンを選択すると、ページで「未定義」が新しいセグメントとして追加されることです。2 番目のドロップダウンで選択した値をページが取得できないと思います。

助けてください。

4

2 に答える 2

0

初めて要素を実際に選択したことがあるかどうかを知るのは難しいです。

if ($row[$name] == $code) {
    $html .= '<option value='.$row[$name].' selected>'.$row[$name].'</option>';
}

$code に値を渡さないか、ここに一致がない場合、jQuery の ":selected" 呼び出しに有効な一致はありません。「未定義」の値を残します。

$("#actype :selected").val()

また

$("#acreg :selected").val()

一致していてもうまくいかない場合は、デフォルトの選択を selected="selected" に変更してみてください。

$html .= '<option value='.$row[$name].' selected="selected">'.$row[$name].'</option>';
于 2011-05-02T19:50:16.157 に答える
0

この行には " がありません:

$html = '<select name="'.$name.'" id="'.$name.'"">';

次のように、値のプロパティをラップすることも賢明です。

$html .= '<option value="'.$row[$name].'">'.$row[$name].'</option>';
于 2011-04-29T07:50:31.133 に答える