0

私はこの答えに基づいて私の質問を解決しようとしています: 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とアイテム名が表示されます。どちらも正しい値ではなく未定義を返します。

4

1 に答える 1

1

http://fogest.net16.net/mctrade/php/process_item_list.phpの結果は、期待したものとは異なり、次のようになります。

[ ["1","Stone","images\/stone.png"],
  ["2","Grass Block","images\/grass_block.png"],
  /* snip a lot of rows */
]

しかし、あなたが期待しているのは次のようなものです。

[ { "id":"1", "name":"Stone", "image?":"images\/stone.png"},
  { "id":"2", "name":"Grass Block","image?":"images\/grass_block.png"},
  /* and so on */
]

mysql_fetch_assoc()の代わりに使用したいと思うのでmysql_fetch_row()、適切な出力が得られる可能性があります。

ボーナス::の前に行を追加することで、応答に適切なコンテンツタイプを与えることができますecho

header("Content-type: application/json");
echo json_encode($data);

備考: http: //fogest.net16.net/mctrade/php/process_item_list.phpのソースを調べたところ、最後にこれが見つかりました。

<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->

これは応答の一部ではないはずです。おそらくJSONパーサーがクラッシュします。

于 2012-07-25T22:05:18.403 に答える