2

jQuery/JS/Ajax スクリプトを使用して、データベースから SELECT ボックスを動的に入力しています。後続の各 SELECT ボックスは、前の SELECT に基づいて入力されます。

例えば。誰かが最初の SELECT で「イングランド」を選択すると、次の SELECT にイングランドの町が入力されます。

私が抱えている問題は、変数を認識するために 2 番目の SELECT 関数を取得することです。コードが多いので、すべてを貼り付けたくはありませんが...これは、ページの読み込み時に最初の SELECT ボックスにデータを入力する最初の関数です。

function getTierOne()
{   
 $tblname = $_SESSION['country'];
 $result = mysql_query("SELECT DISTINCT county FROM $tblname ORDER BY county") 
 or die(mysql_error()); 
 while($tier = mysql_fetch_array( $result ))  
 {
  echo '<option value="'.$tier['county'].'">'.$tier['county'].'</option>';
 }
}

これで問題ありません。$tblname は、ユーザーの国 obvs を含む投稿された $_SESSION 変数です。

問題は、この最初の SELECT ボックスの「onBlur」です。2 番目の SELECT ボックスは、この JS 関数と PHP 呼び出しを使用して表示されます。

$(document).ready(function() 
{
    $('#wait_1').hide();
    $('#drop_1').change(function()
        {
            $('#wait_1').show();
            $('#result_1').hide();
            $.get("func.php", 
                {
                    func: "drop_1",
                    drop_var: $('#drop_1').val()
                }, 
            function(response)
                {
                    $('#result_1').fadeOut();
                    setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
                });
            return false;
        });
});

...

if (isset($_GET['func'])&& $_GET['func'] == "drop_1") {
drop_1($_GET['drop_var']);
}

この関数を呼び出すもの:

function drop_1($drop_var)
{  
  include_once('functions.php');
  $result = mysql_query("SELECT DISTINCT town FROM $tblname WHERE county='$drop_var'") 
  or die(mysql_error());

  echo '<select name="drop_2" id="drop_2">
  <option value=" " disabled="disabled" selected="selected">Select Your Town/Nearest Town</option>';

  while($drop_2 = mysql_fetch_array( $result )) 
  {
  echo '<option value="'.$drop_2['town'].'">'.$drop_2['town'].'</option>';
  }
  echo '</select>';
  echo '<input type="submit" name="submit" value="Continue" />';
}

しかし、グローバルを使用しても、この関数は私の $tblname 変数を認識しません! 認識される唯一の変数は、最初の SELECT ボックスの結果である $drop_var です。

$tblname 変数を渡す方法を知っている人はいますか

function drop_1($drop_var) { ...
4

1 に答える 1