Javascript'te Input'un Değerini Alma Problemi
Merhabalar. Ürünlerimi listeletiyorum. Hepsi listeleniyor. Javascript ile input'tan değeri almaya çalışıyorum ama sadece ilk ürünün değerini alıyor. Nerede hata yapıyorum acaba?
<?php
$sepeturunlerigoster = $db->query("SELECT * FROM sepeteeklenenurunler");
while ($urunekle = $sepeturunlerigoster->fetch()) {
?>
<div class="sepetimurunleri-sayfasi-urunadi">Ürün Adı:
<?php echo $urunekle['urun_adi']; ?>
</div>
<div class="sepetimurunleri-sayfasi-fiyati">Fiyatı:
<input id="urunfiyat" type="number" name="urunfiyati" value="<?php echo $urunekle['urun_fiyati']; ?>" /> TL
</div>
<button onclick="fiyatal()" id="fiyat" value="">Güncelle</button>
<script>
function fiyatal() {
var fiyatt = document.getElementById("urunfiyat").value;
alert(fiyatt);
}
</script>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Şu aşağıdaki kodlara bir bakabilir misiniz? Sepetteki ürün adedi ile fiyatını çarpmaya çalışıyorum. "nan" hatası veriyordu. Aşağıdaki kod ile düzeldi. Ama yine ilk ürün için çalışıyor kod. Diğer ürünlerde "nan" hatası veriyor. Bir de bu ürünleri siteye ilk eklediğimde "urun adedi" diye bir alan yok. Ürünü "sepete ekle" butonuna tıkladığımda sepetim sayfasına gidiyor bu ürün. Sepete eklenen ürünler için "ürün adedi" el ile giriliyor. El ile girmiş olduğum ürün adedi ile fiyatı çarpmaya tabi tutmak istiyorum. Büyük ihtimalle bu yüzden "nan" değeri veriyor.
<?php
$sepeturunlerigoster = $db->query("SELECT * FROM sepeteeklenenurunler");
while ($urunekle = $sepeturunlerigoster->fetch()) {
?>
<div class="sepetimurunleri-sayfasi-urunadi">Ürün Adı:
<?php echo $urunekle['urun_adi']; ?>
</div>
<div class="sepetimurunleri-sayfasi-fiyati">Fiyatı:
<input type="number" id="urunfiyati" class="urunfiyati" value="<?php echo $urunekle['urun_fiyati']; ?>" />
TL
</div>
<div class="sepetimurunleri-sayfasi-adet-sayisi">Adedi:
<input type="number" id="urunadedi" class="urunadedi" value="<?php echo $urunekle['urun_adedi']; ?>" />
</div>
<button onclick="fiyatal()" id="fiyat" value="">Güncelle</button>
<script>
function fiyatal() {
var fiyatt = document.getElementById('urunfiyati').value;
var adett = parseInt(document.getElementById('urunadedi').value);
var sonuc = fiyatt*adett;
document.getElementById('toplamaalani').innerHTML = sonuc;
}
</script>
Mesela bunun gibi bir şey yapabilirsiniz
https://codepen.io/Elessar61/pen/NWgLwLe
Peki ne yapmam lazım anlamadım. Bir de birden fazla input'un değerini id ile alamıyor muyuz? Bu arada class ile almak istediğimde de "undefined" hatası veriyor. Evet input'u döngünün dışına çıkardığımda verdiğim bir sayıyı ekrana yazdırıyor. Ama benim almam gereken değer, select ile listelettirdiğim yerde.
bende not ekleyeyim böyle durumlarda id yerine claslardan işlem yapılabilinir...