0

チェーンされたドロップダウン ボックスの例を見つけましたが、3 番目のボックスが前のボックスの両方を使用して必要な結果を表示するようにするのに苦労しています。

ボックスは、次のことを示すことを目的としています。

ドロップダウンボックス 1 = セクターを選択

ドロップダウンボックス 2 = レベルを選択

ドロップダウンボックス 3 = 資格を選択

最後の SQL クエリで $HELP を表示しました。ここで問題が発生していると思います。ドロップダウン ボックス 2 を選択すると、ドロップダウン ボックス 1 に以前に保存された値が失われていると思います。

<?php
//**************************************
//     Page load dropdown results     //
//**************************************
function getTierOne()
{
    $result = mysql_query("SELECT DISTINCT SSA1Text FROM qualifications ORDER BY SSA1Text ASC") 
    or die(mysql_error());

      while($tier = mysql_fetch_array( $result )) 

        {
           echo '<option value="'.$tier['SSA1Text'].'">'.$tier['SSA1Text'].'</option>';
        }

}

//**************************************
//     First selection results     //
//**************************************
if($_GET['func'] == "drop_1" && isset($_GET['func'])) { 
   drop_1($_GET['drop_var']); 
}

function drop_1($drop_var)
{  
    include_once('db.php');
    $result = mysql_query("SELECT DISTINCT Level FROM qualifications WHERE SSA1Text='$drop_var' ORDER BY Level ASC") 
    or die(mysql_error());

    echo '<select name="drop_2" id="drop_2">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>';

           while($drop_2 = mysql_fetch_array( $result )) 
            {
              echo '<option value="'.$drop_2['Level'].'">'.$drop_2['Level'].'</option>';
            }

    echo '</select>';
    echo "<script type=\"text/javascript\">
    $('#wait_2').hide();
    $('#drop_2').change(function(){

      $('#wait_2').show();
      $('#result_2').hide();
      $.get(\"func.php\", {
        func: \"drop_2\",
        drop_var: $('#drop_2').val()
      }, function(response){
        $('#result_2').fadeOut();
        setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400);
      });
        return false;
    });
</script>";
}


{//**************************************
//     Second selection results     //
//**************************************
if($_GET['func'] == "drop_2" && isset($_GET['func'])) { 
   drop_2($_GET['drop_var']); 
}

function drop_2($drop_var)
{  
    include_once('db.php');
    $result = mysql_query("SELECT * FROM qualifications WHERE Level='$drop_var' AND SSA1Text='$HELP'") 
    or die(mysql_error());

    echo '<select name="drop_3" id="drop_3">
          <option value=" " disabled="disabled" selected="selected">Choose one</option>';

           while($drop_3 = mysql_fetch_array( $result )) 
            {
              echo '<option value="'.$drop_3['Title'].'">'.$drop_3['Title'].'</option>';
            }

    echo '</select> ';
    echo '<input type="submit" name="submit" value="Submit" />';
}
?>

どんな助けでも大歓迎です。

4

1 に答える 1

0

両方の選択変数を drop_2 関数に渡すことができますか?

function drop_2($drop_var1, $drop_var2 == null) {
    if ($drop_var2 !== null) {
        $sqlSnipet = " AND SSA1Text='$drop_var2'"
    }
    $result =
        mysql_query(
            "SELECT * 
            FROM qualifications 
            WHERE Level='$drop_var' " .
            $sqlSnipet
        ) or die(mysql_error());
}
于 2013-05-30T15:22:27.633 に答える