Menampilkan data dari combobox yang dilooping ke textbox dengan javascript

Saya memiliki sebuah kasus untuk menampilkan data ke sebuah textbox dari combobox terpilih, masalahnya adalah combobox ini dilooping menjadi beberapa banyak combobox dan ketika saya memilih salah satu data yang saya harapkan adalah value "harga" yang keluar, namun datanya tetap memanggil value "kode_barang" yang sudah saya tetapkan sebagai value di combobox nya untuk diambil nantinya ke database.

berikut code untuk create table database nya

-- phpMyAdmin SQL Dump
-- version 4.8.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Aug 16, 2019 at 05:44 AM
-- Server version: 10.1.33-MariaDB
-- PHP Version: 7.1.18

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `contoh`
--

-- --------------------------------------------------------

--
-- Table structure for table `barang`
--

CREATE TABLE `barang` (
  `kode_barang` varchar(20) NOT NULL,
  `nm_barang` varchar(100) NOT NULL,
  `harga` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `barang`
--
ALTER TABLE `barang`
  ADD PRIMARY KEY (`kode_barang`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

berikut code untuk php nya

<!DOCTYPE html>
<html>
<head>
	<title>Uji Coba</title>
</head>
<body>

<form method="POST">
		<?php
		for($i=1; $i<5; $i++){
		 ?>
			<?php
			$servername ="localhost";
			$username ="root";
			$password ="";
			$dbname ="contoh";

			$db = mysqli_connect($servername, $username, $password, $dbname);
			if (!$db) {
				die("Connection failed: " .mysqli_connect_error());
				}
			?>
			<select class="chosen" onchange="changeValue(this.value)" id="kode_barang<?php echo $i ?>" name="kode_barang[]" >
                <option></option>
                <?php
                $query=mysqli_query($db, "SELECT *FROM barang");
                $jsArray = "var kode_barang'".$i."' = new Array();\n";
                while ($row=mysqli_fetch_array($query)) {
                    echo '<option value="' . $row['kode_barang'] . '">' . $row['nm_barang'] . '</option>';
                    $jsArray .= "kode_barang'".$i."'['" . $row['kode_barang'] . "'] = {harga_satuan'".$i."':'Rp. ".addslashes(number_format($row['harga'],2, ",", "."))." ".addslashes($row['satuan'])." '};\n";
                                                    }
                ?>
                </select>
		<input type="text" id="harga<?php echo $i?>" name="harga" readonly="">
		<br><br>
		<?php } ?>
</form>
<script type="text/javascript">
    function changeValue(id){
	    var itemCount = document.getElementsByClassName("chosen");
	    var total = "";
        var kode_barang = "";
        var harga = "";
        var harga_satuan = "";
        for(var i = 0; i < itemCount.length; i++)
        {
            kode_barang = "kode_barang"+(i+1);
            harga = "harga"+(i+1);
            harga_satuan = "harga_satuan"+(i+1);
            total = document.getElementById(kode_barang).value;
            document.getElementById(harga).value = total;
        }
	};
</script>
</body>
</html>

avatar quindeir
@quindeir

16 Kontribusi 1 Poin

Dipost 4 tahun yang lalu

Tanggapan

sepertinya ada banyak variable yang di deklarasi yg mejadikan si javascriptnya ambigu,coba hindari mendeklarasikan variable menggunakan var, gunakan const jika isi si variablenya tidak ada berubah, gunakan let jika si variable kemungkinan isinya berubah. var itu bersifat global, jdi mungkin si javascriptnya ambigu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban