Merhaba arkadaşlar. aşağıdaki kodla ilgili şöyle bir sorunum var.. ama öncelikle sorun olan yerin ne yaptığını sonrada sorunu anlatayım..
Profil adet: kesim input alanını yukarı yuvarlama sonucunu veriyor
mdf fiyat alanı : mdf kalınlık açılır kutusundan seçilen değere karşılık gelen fiyatı getiriyor.
sorun olan yer mdf_esfiyat input alanı. buraya profil_adet / mdf fiyat sonucunu getirmesi gerekiyor.. Ancak. öncelikle mdf kalınlık açılır kutusundan değeri seçtiğimde ve diğer bilgileri girdiğimde hesaplama yapmıyor. Fakat mdf kalınlığı değiştirince hesaplama yapıp sonucu getiriyor. yani ilk girişlerde sonucu getirmiyor değişiklik olunca getiriyor. bunu verileri ilk girdiğimde sonucxu getirecek şekilde nasıl düzenleyebilirim.?
<?php
// Veritabanı bağlantısı için gerekli dosyayı dahil edin
include 'db.php';
// Veritabanından pvc_name sütunundaki değerleri getir
$sql = "SELECT pvc_name FROM pvc";
$result = mysqli_query($conn, $sql);
// PVC Desen açılır kutusu oluştur
echo '<tr><td><label for="pvc-select">PVC Desen:</label></td>';
echo '<td><select id="pvc-select">';
echo '<option value="">Seçiniz</option>'; // Seçiniz değeri eklendi
while ($row = mysqli_fetch_assoc($result)) {
echo "<option value='" . $row['pvc_name'] . "'>" . $row['pvc_name'] . "</option>";
}
echo '</select></td></tr>';
// PVC Ölçü sayısal giriş kutusu
echo '<tr><td><label for="pvc_olcu">PVC ÖLÇÜSÜ:</label></td>';
echo '<td><input type="number" name="pvc_olcu" id="pvc_olcu" min="0" step="0.01" value="" oninput="hesaplapvcolcu()"></td></tr>';
// Kur input alanı
echo '<tr><td><label for="kur">Kur:</label></td>';
echo '<td><input type="number" name="kur" id="kur" placeholder="Kur değerini girin" value="22" oninput="hesaplakur()" onchange="pvcSelect.dispatchEvent(new Event(\'change\'));"></td></tr>';
echo '</table>';
echo '<br><br>';
// PVC FİYATINI OTOMATİK GETİRME
echo '<label for="pvc-price">PVC fiyatı:</label>';
echo '<input type="number" name="pvc-price" id="pvc-price" step="0.01" readonly>';
echo '</table>';
echo '<br><br>';
// PVC FİYATINI OTOMATİK TL GETİRME
echo '<label for="sonuc">PVC TL fiyatı:</label>';
echo '<input type="number" name="sonuc" id="sonuc" step="0.01" readonly>';
// JavaScript kodu
echo "<script>";
echo "const pvcSelect = document.querySelector('#pvc-select');";
echo "const kurInput = document.querySelector('#kur');";
echo "const pvcPriceInput = document.querySelector('#pvc-price');";
echo "const sonucInput = document.querySelector('#sonuc');"; // Sonuç kutusu seçildi
echo "pvcSelect.addEventListener('change', () => {";
echo "const selectedpvc = pvcSelect.value;";
echo "fetch('get_mdf_price.php?pvc_name=' + selectedpvc)";
echo ".then(response => response.text())";
echo ".then(data => {";
echo "const pvcPrice = parseFloat(data);";
echo "pvcPriceInput.value = pvcPrice;";
echo "const kurValue = parseFloat(kurInput.value);";
echo "if (!isNaN(kurValue)) {";
echo "const sonuc = pvcPrice * kurValue;";
echo "sonucInput.value = sonuc;"; // Sonuç kutusuna sonucu yazdır
echo "} else {";
echo "sonucInput.value = '';"; // Kur değeri sayısal bir değer değilse sonuç kutusunu boş bırak
echo "}";
echo "});";
echo "});";
echo "</script>";
echo '<table>';
echo '<br><br>';
// tutkal sayısal giriş kutusu
echo '<tr><td><label for="tutkal">TUTKAL:</label></td>';
echo '<td><input type="number" name="tutkal" id="tutkal" min="0" step="0.01" value="" readonly></td></tr>';
// JavaScript kodu
echo '<script>
function hesaplatutkal() {
var pvc_olcu = parseFloat(document.getElementById("pvc_olcu").value);
var kur = parseFloat(document.getElementById("kur").value);
var tutkal = pvc_olcu / 1000 * 0.06 * 9.1 * 1.18 * kur * 2.80;
document.getElementById("tutkal").value = tutkal.toFixed(6);
}
document.getElementById("pvc_olcu").addEventListener("input", hesaplatutkal);
document.getElementById("kur").addEventListener("input", hesaplatutkal);
</script>';
// Veritabanından mdf_name sütunundaki değerleri getir
$sql = "SELECT mdf_name FROM mdf";
$result = mysqli_query($conn, $sql);
// MDF KALINLIK açılır kutusu oluştur
echo '<table>';
echo '<tr><td><label for="mdf-select">MDF KALINLIK:</label></td>';
echo '<td><select id="mdf-select">';
while ($row = mysqli_fetch_assoc($result)) {
echo "<option value='" . $row['mdf_name'] . "'>" . $row['mdf_name'] . "</option>";
}
echo "</select></td></tr>";
// Profil ölçüsü sayısal giriş kutusu
echo '<tr><td><label for="profil_olcu">PROFİL ÖLÇÜSÜ:</label></td>';
echo '<td><input type="number" name="profil_olcu" id="profil_olcu" min="0" step="0.01" value="" oninput="hesaplakesim()"></td></tr>';
// Kesim sayısal giriş kutusu
echo '<tr><td><label for="kesim">KESİM:</label></td>';
echo '<td><input type="number" name="kesim" id="kesim" min="0" step="0.000001" value="" readonly></td></tr>';
// JavaScript kodu
echo '<script>
function hesaplakesim() {
var profil_olcu = parseFloat(document.getElementById("profil_olcu").value);
var kesim = 2100 / (profil_olcu + 5);
document.getElementById("kesim").value = kesim.toFixed(6);
// Profil Adet hesaplaması
var profil_adet = Math.ceil(kesim);
document.getElementById("profil_adet").value = profil_adet.toFixed(0);
}
document.getElementById("profil_olcu").addEventListener("input", hesaplakesim);
</script>';
// Profil Adet giriş kutusu
echo '<tr><td><label for="profil_adet">PROFİL ADET:</label></td>';
echo '<td><input type="number" name="profil_adet" id="profil_adet" min="0" step="1" value="" ></td></tr>';
// MDF FİYATINI OTOMATİK GETİRME
echo "<tr><td><label for='mdf-price-result'>MDF fiyat:</label></td>";
echo "<td><input type='text' name='mdf-price-result' id='mdf-price-result' readonly></td></tr>";
echo "<script>";
echo "const mdfSelect = document.querySelector('#mdf-select');";
echo "mdfSelect.addEventListener('change', () => {";
echo "const selectedMdf = mdfSelect.value;";
echo "fetch('get_mdf_price.php?mdf_name=' + selectedMdf)";
echo ".then(response => response.text())";
echo ".then(data => {";
echo "const mdfPriceResult = document.querySelector('#mdf-price-result');";
echo "mdfPriceResult.value = parseFloat(data) + ' TL';";
echo "const profilAdet = document.querySelector('#profil_adet').value;";
echo "const mdfEsfiyatInput = document.querySelector('#mdf_esfiyat');";
echo "mdfEsfiyatInput.value = parseFloat(profilAdet) / parseFloat(data);";
echo "})";
echo "});";
echo "</script>";
// MDF 280 boy sayısal giriş kutusu
echo '<tr><td><label for="mdf_esfiyat">MDF 280 BOY:</label></td>';
echo '<td><input type="number" name="mdf_esfiyat" id="mdf_esfiyat" min="0" step="0.01" value="" readonly></td></tr>';
// JavaScript kodu
echo '<script>
function hesaplamdfesfiyat() {
var profil_adet = parseFloat(document.getElementById("profil_adet").value);
var mdfFiyat = parseFloat(document.getElementById("mdf-price-result").value);
var mdf_esfiyat = profil_adet / mdfFiyat;
document.getElementById("mdf_esfiyat").value = mdf_esfiyat.toFixed(2);
}
document.getElementById("profil_adet").addEventListener("input", hesaplamdfesfiyat);
document.getElementById("mdf-price-result").addEventListener("input", hesaplamdfesfiyat);
</script>';
// Veritabanı bağlantısını kapatın
mysqli_close($conn);