私はこの答えに基づいて私の質問を解決しようとしています: jQueryを使用してデータベースから選択ボックスにデータを入力します
私はそこの答えに書かれていることを実行しようとしましたが、ここでは運がありません。現在のところ、ドロップダウンメニューに表示されるのは、そこから始まるデフォルトの「ストーン」アイテムだけです。
誰かが時間を割いて、私の問題を解決するための手を貸してくれませんか。私のコードは基本的に、1から始まる順序で150を超えるIDを持つMySQLデータベースから読み取り、同じIDの行の対応する名前を使用して、ロード時にドロップダウンメニューにデータを入力する必要があります。
ドロップダウンメニューがその内部でどのように表示されるかの例:
- 結石
- 草
- ダイヤモンド
対応するDBは次のようになります。
ID item_name
1 Stone
2 Grass
3 Diamond
これを実行するために使用しているコードは次のとおりです。
PHP(process_item_list.php):
$con = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
$dbs = mysql_select_db($DB_NAME, $con);
$tableName = "itemlist";
$result = mysql_query("SELECT * FROM $tableName");
$data = array();
while ( $row = mysql_fetch_row($result) )
{
$data[] = $row;
}
echo json_encode( $data );
?>
jQuery / Javascript
<script type="text/javascript">
$(function(){
var items="";
$.getJSON("process_item_lists.php",function(data){
$.each(data,function(index,item)
{
items+="<option value='"+item.id+"'>"+item.name+"</option>";
});
$("#tradeItems").html(items);
});
});
</script>
HTML
<select id="tradeItems">
<option value="">Stone</option>
</select>
ロード時にドロップダウンメニューがいっぱいになる限り、これを行うためのさまざまな方法も利用できます。
編集:wireyの助けを借りて、PHPの問題が修正されました。PHPファイルを実行した結果は次のようになります。http://fogest.net16.net/mctrade/php/process_item_list.php アラートボックスを使用して実際のページを実行すると、IDとアイテム名が表示されます。どちらも正しい値ではなく未定義を返します。