0

私は数日前に同様の質問をしましたが、一度に多くのことをやろうとしていたと思います。誰かが私がこれを始めるのを手伝ってくれることを願っています。

2つのドロップダウンリストがあり、1つには年(2012、2011など)が入力され、「db_2012」、「db_2011」などのmySQLデータベースがいくつかあります。これらのデータベースには月を表すテーブルがあります。

ユーザーが年を選択し、その選択を使用して正しいデータベースを照会し、2番目のドロップダウンリストに入力するために使用されるテーブル名のリストを返すようにしたいと思います。次に、[結果を表示]ボタンをクリックして、選択したテーブルを照会し、結果を表示します。

私はこれをワードプレスのウェブサイトに載せており、私が作成したphpテンプレートファイルを使用しています。これはまだ私にとっては新しいことであり、これまでのところ私が望むようには機能しません。基本的には、年を選択し、月を選択して(dbから入力されていない)、ボタンをクリックするように設定されています。クエリが作成され、テーブルが表示されますが、このソリューションをより動的にし、上記のように機能させる必要があります。助けてくれてありがとう。

echo '<form action="" method="post">';
echo'<select name="years" id="years">';
foreach($yearList as $year){
    echo'<option value="'.$year.'">'.$year.'</option>';
}
echo'</select><br />';

echo '<select name="monthList" id="months">';
foreach($monthList as $month) {
    echo'<option value="'.$month.'">'.$month.'</option>';
}
echo '</select>';
echo '<input type=\'submit\' value=\'See Results\'>';
echo '</form'>

$yearListと$monthListは、事前に入力された配列です。そこで、ここから[結果を表示]ボタンをクリックし、ドロップダウン選択のパラメーターを使用してSQLデータベースにクエリを実行します。

$database = $_POST['yearList'];
$month = $_POST['monthList'];

$wpdbtest_otherdb = new wpdb('Username', 'Password', $database, 'localhost');

$qStr = "SELECT * FROM $month";
$myResults = $wpdbtest_otherdb->get_results($qStr, OBJECT); 
4

1 に答える 1

0

セキュリティと処理のために別のphpページにAJAX呼び出しを送信し、AJAXコールバックを介して解析して2番目の選択ボックスに戻すXMLをPHPに返すように思われます。少し面倒かもしれませんが、ユーザーが挿入する可能性のある奇妙なフォーム値をチェックできます。

編集:PHPは、AJAXパラメーターを$_GETまたは$_POST配列の一部として受け取ります。そこから、チェックとdb呼び出しを実行(または実行しない)しheader("Content-Type:text/xml");てから、サーバーが正しいヘッダーで返送するように追加できます。その後、JavaScriptで受信するXML形式のデータをエコーする必要があります。リクエストが通過することになっている場合は、XML以外のものをエコーし​​ないように注意してください。

于 2012-09-12T19:20:28.413 に答える