v2.5.2
Giriş yap

Javascript'te Input'un Değerini Alma Problemi

yazilimyolcusu
499 defa görüntülendi

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>
Cevap yaz
Cevaplar (5)
yazilimyolcusu
943 gün önce

Ş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>

abdullahx
943 gün önce

Mesela bunun gibi bir şey yapabilirsiniz
https://codepen.io/Elessar61/pen/NWgLwLe

yazilimyolcusu
943 gün önce

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.

hakankorkz
943 gün önce

bende not ekleyeyim böyle durumlarda id yerine claslardan işlem yapılabilinir...

abdullahx
943 gün önce

id değeri sayfada bir tane olur, siz döngüye sokarak aynı id yi çoğaltıyorsunuz. Onun için sadece ilk sıradaki değeri dikkate alıyor