Jquery AJAX ile post sorunu
Alttaki kod ile post atıyorum fakat söyle bır sıkıntım var.
Foreach ile gelen verileri ekrana yazdırıyorum ve aynı classlara ait birden fazla içerik oluyor doğal olarak ve alttaki kod ile post işlemi yaptığım zaman hepsini post edip sonuç alıyor. Yaptığı işlemde sıkıntı yok işlemi doğru yapıp doğru postları alıyor fakat ben sadece "DÜZENLE" butonuna tıkladığım adresi güncellemesini istiyorum. Burada tüm hepsini güncelliyor.
Bilgileri ekrana bastığım ekran: http://prntscr.com/ptxis3
Bu ekranda "Düzenle" dediğimde açılan modal: http://prntscr.com/ptxizz
Modal ekranında düzenle dediğim zaman ilk ekranda açılanların tamamını post atıyor.
Bu alan modal ekranı:
<div class="sonuc"></div>
<form class="adresformDuzenle">
<div class="form-group govde">
<label>Adres Adı</label> <span class="text-danger">*</span>
<input type="text" class="form-control degistir" name="adres_adi" value="<?=$adres['adres_ad']; ?>" placeholder="Adres Adı">
</div>
<div class="form-group govde">
<label>İsim</label> <span class="text-danger">*</span>
<input type="text" class="form-control degistir" name="isim" value="<?=$adres['adres_isim']; ?>" placeholder="İsim">
</div>
<div class="form-group govde">
<label>Soyisim</label> <span class="text-danger">*</span>
<input type="text" class="form-control degistir" name="soyisim" value="<?=$adres['adres_soyisim']; ?>" placeholder="Soyisim">
</div>
<div class="form-group govde">
<label>Telefon(GSM)</label> <span class="text-danger">*</span>
<input type="text" class="form-control tr_no degistir" name="gsm" value="<?=$adres['adres_tel']; ?>" placeholder="Telefon (GSM)">
</div>
<div class="form-group">
<label>T.C</label>
<input type="text" class="form-control tc" name="tc" value="<?=$adres['adres_tc']; ?>" placeholder="T.C (Zorunlu Değil)">
</div>
<div class="form-group row il_ilce">
<div class="col-md-6 govde">
<label>İl</label> <span class="text-danger">*</span>
<select name="il" class="form-control sehir degistir">
<option value="">İl Seçiniz.</option>
<?php
$ilsorgu = $db->query("SELECT * FROM iller")->select();
if ($ilsorgu==true) {
foreach ($ilsorgu as $key => $il) {
?>
<option value="<?=$il['id'] ?>" <?=select($adres['adres_il'],$il['id']); ?> ><?=$il['il_adi'] ?></option>
<?php } }
?>
</select>
</div>
<div class="col-md-6 govde">
<label>İlçe</label> <span class="text-danger">*</span>
<select name="ilce" class="form-control degistir ilce">
<option value="">İlçe Seçiniz.</option>
<?php
$ilcesorgu = $db->query("SELECT * FROM ilceler WHERE il_id = ?")->arr(array($adres['adres_il']))->select();
if ($ilcesorgu==true) {
foreach ($ilcesorgu as $key => $ilce) {
?>
<option value="<?=$ilce['id'] ?>" <?=select($adres['adres_ilce'],$ilce['id']); ?> ><?=$ilce['ilce_adi'] ?></option>
<?php } }
?>
?>
</select>
</div>
</div>
<div class="form-group govde">
<label>Açık Adres</label>
<textarea class="form-control degistir" name="acik_adres" placeholder="Açık Adres..."rows="3"><?=$adres['adres_adres']; ?></textarea>
</div>
<div class="form-group">
<div class="form-check">
<span class="form-check-input input-check">
<span class="input-check__body">
<input class="input-check__input" type="checkbox" id="varsayilan" name="varsayilan" <?=checked($adres['adres_durum']); ?> >
<span class="input-check__box"></span>
<svg class="input-check__icon" width="9px" height="7px">
<use xlink:href="<?= $host ?>public/on_tema/images/sprite.svg#check-9x7"></use>
</svg>
</span>
</span>
<label class="form-check-label" for="varsayilan" data-toggle="tooltip" data-placement="top" title="Alişverişlerinizde ilk öncelikli adres olarak belirlensin mi?">Varsayılan</label>
</div>
</div>
<div class="modal-footer">
<input type="hidden" class="adres_id" name="adres_id" value="<?=$adres['adres_id']; ?>" >
<button type="button" class="btn btn-primary adresDuzenle" >Düzenle</button>
</div>
</form>
<script>
$('body').on('change','.sehir',function(){
var id = $(this).val();
var host = '<?=$host ?>'
$.ajax({
type: "POST",
url: host+"kontrol",
data: "sehir="+id,
success: function(x){
$(this).parents('.il_ilce').find('.ilce').empty();
$(this).parents('.il_ilce').find('.ilce').html(x);
}
});
});
$('body').on('click','.adresDuzenle',function(){
var host = '<?=$host ?>'
$.ajax( {
url: host + "lib/adres-duzenle-post",
type: "POST",
data:$(this).closest('.adresformDuzenle').serialize(),
success: function(cevap) {
if(cevap==true){
$('.sonuc').empty();
$('.sonuc').html('<div class="col-sm-12 rounded mb-2 p-2 bg-success text-white" align="center" >Adres Düzenlendi...</div>');
}else{
$('.sonuc').empty();
$('.sonuc').html('<div class="col-sm-12 rounded mb-2 p-2 bg-danger text-white" align="center" >Adres Düzenlenemedi... <br /> Sebeb: '+ cevap +'</div>');
}
}
});
});
</script>
Bu alan php ile sql den geleni ekrana yazdırdığım kodlar:
<?php
$adresler = $db->query("SELECT * FROM adresler WHERE adres_uye = ? ORDER BY adres_durum DESC")->arr(array($_SESSION['uye']['uye_id']))->select();
if ($adresler) {
foreach ($adresler as $key => $adres) {
?>
<div class="addresses-list__item card address-card">
<?php if($adres['adres_durum']==1){ echo ' <div class="address-card__badge" *ngif="address.default">Varsayılan</div>'; } ?>
<div class="address-card__body">
<div class="address-card__name"><?=$adres['adres_ad']; ?></div>
<div class="address-card__row">
<?php
echo $adres['adres_adres'];
echo '<br>';
echo il($adres['adres_il']);
echo '/';
echo ilce($adres['adres_ilce']);
?>
</div>
<div class="address-card__row">
<div class="address-card__row-title">Telefon</div>
<div class="address-card__row-content"><?=$adres['adres_tel']; ?></div>
</div>
<div class="address-card__row">
<div class="address-card__row-title">İsim Soyisim</div>
<div class="address-card__row-content"><?=$adres['adres_isim'] .' '. $adres['adres_soyisim']; ?></div>
</div>
<div class="address-card__footer">
<button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#adres-duzenle-<?=$adres['adres_id']; ?>">Düzenle</button>
<div class="modal fade" id="adres-duzenle-<?=$adres['adres_id']; ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">
Adres Düzenle
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<?php include './app/lib/adres-duzenle.php'; ?>
</div>
</div>
</div>
</div>
<button type="button" class="btn btn-danger btn-xs">Sil</button>
</div>
</div>
</div>
<div class="addresses-list__divider"></div>
<?php
}
}
?>
```
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (6)
PHP tarafinda ki kodlarini da paylasirsan cok iyi olur.
mrknowitall dediğinizi yaptım fakat bir işe yaramadı maalesef. :(
Class lardan ziyade İd lerden yola çıkarsan işlemin daha rahat olur.
.adresFormDuzenle class yerine o forma id ver
ve serialize yi de bu şekilde yaparsan.. $('#formIDsi').serialize();