簡體   English   中英

填充下拉菜單(選擇)

[英]Populating a Drop Down Menu (select)

我一直在嘗試根據以下答案解決我的問題: 使用jQuery從數據庫填充選擇框

我試圖實現那里答案中所說的內容,但是我在這里沒有任何運氣。 到目前為止,下拉菜單中出現的所有內容都是在其中啟動的默認“ Stone”項目。

任何人都可以抽出一些時間來幫我解決問題。 我的代碼本質上應該從一個MySQL數據庫讀取,該數據庫具有150個以上的ID(從1開始),並在相同ID的行中使用相應的名稱來填充加載時的下拉菜單。

下拉菜單在內部的示例:

  • 鑽石

相應的數據庫將如下所示:

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>

我也歡迎采取其他方式來做到這一點,只要它仍然可以填充加載的下拉菜單!

編輯:在無線的幫助下,PHP問題已修復。 這是從運行PHP文件得到的結果: http : //fogest.net16.net/mctrade/php/process_item_list.php當我使用警告框運行實際頁面時,應給我ID和項目名稱它們都返回undefined而不是正確的值。

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解析器崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM