Foreach() Dışındaki Modalı Çağırma ve verileri gönderme
döngü içerisindeki modal ı nasıl açabilirim.
döngüde veriler var ve bunları o açılan modal içerisindeki inputlara nasıl value olarak atayabilirim.
foreach içinde Id no vermez isem açılıyor da boş modal işime yaramıyor
foreach içinde modal çalıştırsak olur fakat bu sefer arka tarafta yüklü veride birşeyleri etkiler diye düşünüyorum
bunu foreach dışında nasıl yapabilirim yardımcı olabilirimisiniz.
teşekkürler.
foreach($as as $row):
echo '<a href="#" id="modal" onClick="ModalActive.show('ModalID<?php echo $row['id'] ?>')"></a>';
endforeach;
<div class="modal fade" id="ModalID" aria-modal="true" role="dialog">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<div class="modal-header modal-header-info ">
<h5 class="modal-title">Modal Düzenle</h5>
<button type="button" class="material-icons" data-bs-dismiss="modal">x</button>
</div>
Modal İçerik
</div>
</div>
</div>
var ModalActive = {
'show': function(id) {
$('#' + id).modal('show');
/// burası sonrası :)
$.ajax({
url:'/Data/',
type: 'post',
data: {data},
dataType: "json",
success: function(response) {
if(response.durum){
toastUser(response.mesaj);
}
}
});
},
'remove': function() {
}
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
Olması gerektiği gibi yazmışsınız. Çok daha kısa görünsün isterseniz aynı işi yapan bir döngü kullanabilirsiniz:
$("body").on("click", ".modal_pen", function(){
Object.entries($(this).data()).map(data=>$("#"+data[0]).val(data[1]));
$('#Guncelle').modal('show');
});
Ama a tag'ınıza yine data attribute'lerini girmeniz gerekiyor.
@ebykdrms teşekkür ederim
istediğim gibi oldu daha kısa yazılsın istedim pek bilmiyorum js sadece mantık yürüterek biraz araştırdım atama yapmayı öyle yapmıştım
kısa hali daha işlevsel oluyor sadece öğrenmek için soruyorum.
data-veri giriyorsaum buton attr.. input id leride aynı isimde olmak zorunda sizin verdiğiniz cevaba göre ki eşleşmeyi ona göre mi sağlıyor.
<a href="#" data-veri="veri" data-veri2="veri"></a>
// giden modal input
<input type="text" id="veri">
<input type="text" id="veri2">
// yok ise atıyorum a butonundaki data isimleri farkı
giden modal inputundakiler farklı olsa yakalamaz sanırım :)
function Value(id, veri){
document.getElementById(id).value = veri;
}
$("body").on("click", ".modal_pen", function (button) {
var id = $(this).data('id'),
veri1 = $(this).data('veri1'),
veri2 = $(this).data('veri2'),
veri3 = $(this).data('veri3'),
veri4 = $(this).data('veri4');
Value("id", id);
Value("veri2", veri2);
Value("veri3", veri3);
Value("veri4", veri4);
$('#Guncelle').modal('show');
});
bu şekilde yaptım fakat bunun daha kolay bir yöntemi olması gerekiyor diye düşünüyorum.
tıklanan a tagına bütün verileri data-veri şeklinde girmek gerekiyor
js tarafında aynı verileri tek tek işlemek gerekiyor vs .
daha kısa bir çözümü olan varmı acaba.