选择下拉列表后,值将消失

时间:2017-11-08 18:50:15

标签: javascript php

我四处寻找我的问题的答案,但我找不到。

我有一个包含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保存到数据库中。

任何人请帮助我。

1 个答案:

答案 0 :(得分:1)

我可以看到的问题是您正在为kode_barang1分配存储的名称。 kode_barang1SELECT对象的名称,该对象使用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;

你会看到它会起作用。