我一直在尝试根据这个答案解决我的问题: Populate select box from database using jQuery
我试图实现那里的答案中所说的内容,但我在这里没有任何运气。到目前为止,下拉菜单中出现的所有内容都是从其中开始的默认“Stone”项目。
谁能抽出一些时间帮我解决我的问题。我的代码本质上应该从具有超过 150 个 ID 的 MySQL 数据库中读取,顺序从 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>
我也愿意接受不同的方法来做到这一点,只要它仍然在加载时填充下拉菜单!
编辑:在wirey的帮助下,PHP问题得到了修复。以下是运行 PHP 文件的结果:http://fogest.net16.net/mctrade/php/process_item_list.php 当我使用应该给我 ID 和项目名称的警报框运行实际页面时它们都返回 undefined 而不是正确的值。