v2.5.2
Giriş yap

option value değerini dinleme

rephp7
732 defa görüntülendi
foreach ($urun as $urun) 
{
echo '<option value="' . $urun["ubaslik"] . '">' . $urun["ubaslik"] . '</option>';
}

Bu sekilde urunler tablosundan ürün başlıklarını option value içine alıp seçim yapıyorum
ama şimdi ben bu seçimi nasıl dinletip urunler tablosundan yaptığım seçime göre ürünün kodunu (ukod) da getirtebilirim?

echo $urun[ukod]
ürün baslığıürün kodu
stoktakilers00
geleceklerg01

Dediğim gibi option value ile Stoktakileri seçtiğimde bana value değeri olarak altına s00 yazsınki ben de bunu başka değer ile birleştirip forma post edebileyim.

<input type="text" class="form-control" placeholder="ambarkod…" name="ambarkod" readonly value="<?=$urun["ukod"],'-', str_pad($last_id+1, 4, '0', STR_PAD_LEFT) ?>">

//çıktısı şöyle olmalı: s00-0025

jquery ile mi yapılır hiç bilmiyorum. Yardımcı olur musunuz?

Cevap yaz
Cevaplar (2)
rephp7
972 gün önce

@mrtkcky, güzel açıklamalı yazmışsınız. Teşekkür ederim.
İnceleyip kendi projemde uygulamaya çalışacağım
çok güzel fikir oldu bana.

mrtkcky
972 gün önce

Merhabalar,

jQuery & Ajax kullanarak dediğiniz işlemi yapabilirsiniz. Örneğin bizim x name'ine sahip bir select ve içinde optionlarımız olsun.

<select id="urunler" name="x">
    <option value="a">A</option>
    <option value="b">B</option>
    <option value="c">c</option>
</select>

Siz istiyorsunuz ki kişi buradan bir seçim yaparsa, yaptığı seçime göre ürün kodunu getirsin.

Önce projeye jQuery'i dahil ediyoruz ve post işlemimizi yapıyoruz:

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<script>
    $("select.x").on('change', function(){

	var secilenurun = $(this).children("option:selected").val();
	$.ajax({
		type: 'POST',
		url: 'ajax.php',
		data: {'secilenurun':secilenurun},
		success:function (data) {
	        $("#urunid").remove();
			$("#urunler").after(data);
		}
	});
});

<script>

Burada dedik ki:

urunler selectinden bir urun seçilirse bunun value değerini al ve ajax.php'ye post et.
Ardından ajax.php'den dönen değeri #urunler id'sine sahip selectin arkasına yaz.
(Burada yer alan $urunid, ajaxtan göndereceğimiz kısım)

Ajax.php dosyası:


<?php
if(isset($_POST["secilenurun"])){
    
    $id = $_POST["secilenurun"];
    
    //Bu kısımda veritabanı işlemlerini yapıp o ürünün idsini çektirin ve
    
    return "<input id='urunid' type='hidden' value='CEKILEN_URUN_ID'>";
    
    //şeklinde return edin.
}

?>

Ajax kısmında yazan $("#urunid").remove(); kısmını yazmamın sebebi, olur da burada seçim yapan kullanıcı, fikrini değiştirip başka bir şey seçerse, daha önce seçip eklettiği #urunid inputunu sildirip yenisini yazdırmak.

Kolay gelsin,

Saygılarımla