我的頁面內有一個輸入(「模型」),其中包含一個datalist屬性和一個選擇菜單(「品牌」)。當用戶從模型中選擇數據列表中的一個選項時,它將動態更改品牌選擇菜單中的選項值。模型和品牌中的兩個選項值均從數據庫調用。這是我到目前爲止的代碼;通過ajax分割輸出值,
<input type="text" name="type" id="type" list="datalist1" onchange="fw();"/>
<datalist id="datalist1">
<?php
$query9 = "SELECT DISTINCT model FROM server ORDER BY model ASC";
$result9 = mysql_query($query9);
while($row9 = mysql_fetch_assoc($result9))
{
echo '<option value="'.$row9['model'].'">';
} ?>
</datalist>
<select name="brand" id="test2"><option value="">-- Select Brand--</option></select>
腳本;
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function fw()
{
var selname = $("#type").val();
$.ajax({ url: "getBrand.php",
data: {"brand":brand},
type: 'post',
success: function(output) {
document.getElementById('test2').options.length = 0;
document.getElementById('test2').options[0]=new Option(output,output);
// document.getElementById('test2').options[1]=new Option(output,output);
}
});
}
</script>
getBrand.php
<?php
define('DB_HOST1', 'localhost');
define('DB_NAME1', 'standby');
define('DB_USER1', 'root');
define('DB_PASS1', '');
$link = mysql_connect(DB_HOST1, DB_USER1, DB_PASS1);
if(!$link)
{
exit('Cannot connect to server "' . DB_HOST1 . '"');
}
mysql_select_db(DB_NAME1, $link) or die('Cannot use database "' . DB_NAME1 . '"');
if (isset($_POST['brand'])) {
$selname = $_POST['brand'];
$query = "SELECT * FROM server WHERE model='$brand'";
$res = mysql_query($query);
$aBrand= array();
while($rows = mysql_fetch_assoc($res)) {
$brand= $rows['brand'];
$aBrand[] = $brand;
echo $aBrand[0];
echo $aBrand[1];
}
} ?>
從我所編碼的,我已成功改變選擇菜單動態,但有一個問題。當有更多的數據從getBrand.php中調用時,選擇菜單中的「輸出」會將所有數據組合成一行。例如,如果數據是「M3000」和「M4000」,它將顯示爲「M3000M4000」。現在,我該如何分割它並將其作爲正常的選擇選項?
我還在學習Javascript,希望這裏有人能指導我。
注:該代碼只適用於Firefox,因爲DataList控件屬性的
謝謝!完美的作品.. –