1

種の分類名を含むテーブルがあります。したがって、種、ドメイン、王国、門などごとに個別の列があります。これらの分類ごとに選択ボックスを使用しています。最初の分類 (ドメイン) が選択されたときに、データベースにクエリが実行される必要があります。ドメインが前の選択の値であるすべての王国を取得します。

これが「search.php」のPHP用のものです。

<select name="domain" id="domain">
<option value="standard">-- Domain --</option>
<?php while($row = mysql_fetch_array($get_domains, MYSQL_NUM))
{
  echo "<option value='$row[0]'>$row[0]</option>";
} ?>
</select>

<select name="kingdom" id="kingdom" >
<option value="standard">-- Kingdom --</option>
<?php 
        $result = array();
    $domain = $_POST['domain'];
    $get_kingdoms = mysql_query("SELECT DISTINCT sci_kingdom FROM tbl_lifedata WHERE sci_domain = $domain");
    while($row = mysql_fetch_array($get_kingdoms, MYSQL_NUM))
    {
         $result[] = array(
             'name' => $row[0]
         );
    }
    echo json_encode($result);
?>
</select>

そして、これは私のjqueryにあるものです:

$('#domain').change(function() {
    $domain = $('#domain option:selected').val();

    if ($domain == 'standard') {
        $('#kingdom').attr('disabled', 'disabled');
        $('.btn-cover').text('Select a Domain:');
    } else {
        $('#kingdom').removeAttr('disabled', 'disabled');
        $('.btn-cover').text('Select a Kingdom:');
    }
});

$('#kingdom').change(function() {
    $kingdom = $('#kingdom option:selected').val();

    if ($kingdom == 'standard') {
        $('#domain').removeAttr('disabled', 'disabled');
        $('#phylum').attr('disabled', 'disabled');
        $('.btn-cover').text('Select a Kingdom:');

    } else {
        $('#domain').attr('disabled', 'disabled');
        $('#phylum').removeAttr('disabled', 'disabled');
        $('.btn-cover').text('Select a Phylum:');
        $.post("search.php", {
            'domain': option
        }, function(data) {
            var sel = $("#kingdom");
            sel.empty();
            for (var i = 0; i < data.length; i++) {
                sel.append('<option>' + data[i].name + '</option>');
            }
        }, "json");
    }
});​

.post() 関数の仕組みを理解するのに最も苦労しています。私は自分が何をしたいのかを正確に知っていますが、どのように行うかは正確ではありません.

私の目標: - 変更されたときにドメイン選択ボックスの値を取得する - mysql クエリでその値を使用して、関連する王国を取得する - jquery を使用してクエリを実行し、王国選択ボックスに入力する

ありがとう!

4

0 に答える 0