1

Webサイトにデータを取得したいデータベースがあります。名前とIDでリストされた状態が含まれています。id、namne、およびそれらのIDを含む州、次に存在するクラブでリストされた郡。それらが存在する郡IDと、実際のデータの列を参照します。

私が持っているもの:

状態IDと名前が表示されるドロップダウンメニュー。

私が達成したいこと:

状態を選択したら、たとえばnyとしましょう。そのIDを取得し、これを使用して、郡のドロップダウン用に別のmysql配列を収集します。状態の選択時に動的に発生するようにしたいのですが、ドロップダウンの横に結果のカウントを表示することもできます。

$resstate = mysql_query("SELECT * FROM state ORDER by longstate;") or die("Note: " . mysql_error());
State:
   <select name="State" size=1>
     <?
        while( $rs = mysql_fetch_array( $resstate ) ) {
            echo "<option value=" .$rs['id'] . ">" . $rs['longstate'] . "</option>";
        }
   echo "</select>";
?>

最初のドロップダウンでJavaScriptonChange="this.form.submit()"を使用できることはわかっていますが、その時点で新しいページを作成し、状態ドロップダウンの機能を維持できるかどうかはわかりません。あなたがニューヨークを欲しがっていたときに誤ってニューハンプシャーを選んだ。

ドロップダウンを埋める現在の配列の例を次に示します。

http://snowmobileamerica.com/countytest.php

- - 編集 - -

Dagons Adviceを使用して、Ajaxを調べました。

getcounty.php?q=への参照に基づいてデータベースにクエリを実行することになっているphpファイルを作成しました。

ファイルは次のように作成されます。

<?php
$q=$_GET["q"];

$cn=mysql_connect("localhost","user","password") or die("Note: " . mysql_error());

mysql_select_db("snowusa_clubs", $cn);

$sql="SELECT * FROM county WHERE state_id = '".$q."' ORDER by name";

$result = mysql_query($sql);


echo "<select name="County" size=1>";

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

 echo "</select>";

mysql_close($cn);
 ?> 

手動で実行しようとすると http://www.snowmobileamerica.com/getcounty.php?q=33500内部サーバーエラーが発生します...

私が間違ったアイデアはありますか?

4

2 に答える 2

1

要素にIDを追加してから、jqueryを使用してハンドラーにajax呼び出しを行います。

$("#State").change(function() {
$.post("path/to/request handler/" , { "State" : $(this).val() },
function(data){
    if (data == "OK"){
        //add some elements here
    } else {
        //handle an error here
    }
});

});

于 2013-02-14T03:37:05.553 に答える
0

まだコメントできません。しかし、2番目の質問については、次のことを試してください。

<?php
$q=$_GET["q"];

$cn=mysql_connect("localhost","user","password") or die("Note: " . mysql_error());
echo "Conn ok<br>";
mysql_select_db("snowusa_clubs", $cn);
echo " Database opened<br>"; 
$sql="SELECT * FROM county WHERE state_id = '$q' ORDER by name";

$result = mysql_query($sql);
echo " Database queried <br>";

echo "<select name='County' size=1>";

while($rc = mysql_fetch_array($result))
{
echo "<option value='" .$rc['id'] . "'>" . $rc['name'] . "</option>";//added single quotes in the value
 }
echo "</select> ";

mysql_close($cn);
?> 
于 2013-02-14T04:35:34.747 に答える