Giriş yap
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">&times;</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 
        }
    }
    ?>

```
mrknowitall
9 gün önce

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();

erencandamaroglu
9 gün önce

mrknowitall dediğinizi yaptım fakat bir işe yaramadı maalesef. :(

crazzyman
9 gün önce

forma id koy
ve

$("#formid").on("submit",function(e){
    e.preventDefault();
    //kodlarini buraya koyarsan sorun sanirim isine yarar ! :)
})
mrknowitall
9 gün önce

PHP tarafinda ki kodlarini da paylasirsan cok iyi olur.

erencandamaroglu
9 gün önce

crazzyman bu da olmadı ağa :S

erencandamaroglu
9 gün önce

mrknowitall ekledim hocam tüm kodları

Nasıl akıllıca soru sorulur?
Daha hızlı ve kaliteli cevaplar almak için önce nasıl soru sorulacağını bilmeniz gerekir. Eğer bilmiyorsanız bu yazı serisini okuyun.

Cevap yaz