填充文本输入时,下拉列表单击 PHP PDO

filled text input while dropdown click php pdo

本文关键字:单击 PHP PDO 下拉列表 文本 输入 填充      更新时间:2023-09-26

我曾经在下拉列表单击时填充文本输入。 但是在我选择"从下拉列表中"后,文本输入仍然为空。 我有回声$jsArray,它显示了数据。 当我从下拉列表中选择时,文本输入应该会获取数据。 这是代码:

<script type="text/javascript">
<?php echo $jsArray; ?>
function changeValue(id){
document.getElementById('harga_satuan').value = hargaSatuan[id].satu;
};
</script>
<form action='create_detail.php' method='post'>
    <table class='table table-hover table-responsive table-bordered'>
        <tr>
            <td>No. Detail PO </td>
            <td><input type='text' name='detail_id' class='form-control' value='<?php echo $number; ?>' required></td>
        </tr>
        <tr>
            <div id="angka">
            <div id="input">
            <td>Quantity Yang Dipesan</td>
            <td><input type='text' class='qty_order' id='qty_order' name='qty_order' class='form-control'  onkeyup="hitung()"></td>
            </div>
            </div>
        </tr>
        <tr>
            <div id="angka">
            <div id="input">
            <td>Harga Per Unit(Rp)</td>
            <td><input type='text' class='harga_satuan' id='harga_satuan' name='harga_satuan' class='form-control' onkeyup="hitung()"></td>
            </div>
            </div>
        </tr>

        <tr>
            <td>ID Barang</td>
            <td>
            <?php
            // read from the database
            include_once 'objects/barang.php';
            $barang = new Barang($db);
            $stmt = $barang->read();
            // put them in a select drop-down
            echo "<select class='form-control' id='id_barang' name='id_barang' onchange='changeValue(this.value)'>";
                echo "<option>Select ..</option>";
                while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
                    $id_barang = $row['id_barang'];
                    $nama_barang = $row['nama_barang'];
                    $harga_satuan = $row['harga_satuan'];
                    echo "<option value='" . $row['id_barang'] . "'>" . $row['id_barang'] . "</option>";
                    $jsArray .= 'hargaSatuan["' . $row['id_barang'] . '"] = {satu:"' . addslashes($row['harga_satuan']) . '"};'n';
                }
            echo "</select>";
            ?>
            </td>
        </tr>

但是在文本输入上,数据没有显示。 你能帮我解决这个问题吗?

试试这个

function changeValue(){
  var sbox = document.getElementById("id_barang");
  document.getElementById('harga_satuan').value = sbox.options[sbox.selectedIndex].value;
};

并像这样调用函数

echo "<select class='form-control' id='id_barang' name='id_barang' onchange='changeValue()'>";