我四处寻找我的问题的答案,但我找不到。
我有一个包含2列的表:kode_barang(Item ID)和nama_barang(Item Name)。 Kode_barang是一个下拉选项,它的数据是从另一个表动态填充的。每次用户选择一个选项时,该项目的名称将自动出现。
这是我的代码:
<td>
<select name='kode_barang' type = "text" id='kode_barang1' onchange="changeValue(this.value)">
<option>Choose</option>
<?php
$sql="SELECT * FROM input_data_barang ";
$result=mysql_query($sql);
$met = "var kode_barang = new Array();\n";
while ($row = mysql_fetch_array($result)) {
$id=$row["kode_barang"];
echo "<OPTION VALUE=$id>$id</option>";
$met .= "kode_barang['" . $row['kode_barang'] . "'] = {name:'" . addslashes($row['nama_barang']) . "',desc:'".addslashes($row['nama_barang'])."'};\n";
}
?>
</select>
</td>
<td><input type="text" name='nama_barang' id="nama_barang1"/readonly>
<script type="text/javascript">
<?php echo $met; ?>
function changeValue(id){
document.getElementById('kode_barang1').value = kode_barang[id].name;
document.getElementById('nama_barang1').value = kode_barang[id].desc;
};
</script>
</td>
下拉选项和项目ID完美显示。问题是,当我选择一个项目ID时,ID(nama_barang)的名称会自动出现,但是项目ID会消失。下拉列表变为空白。选择选项后,我需要保留项目ID,以便将ID保存到数据库中。
任何人请帮助我。
答案 0 :(得分:1)
我可以看到的问题是您正在为kode_barang1
分配存储的名称。 kode_barang1
是SELECT
对象的名称,该对象使用ID作为ID,因此在分配时,它会变为NULL,因为<OPTION>
中没有名称。< / p>
创建一个名为input
的新kode_barang2
变量并进行更改
document.getElementById('kode_barang1').value = kode_barang[id].name;
要
document.getElementById('kode_barang2').value = kode_barang[id].name;
你会看到它会起作用。