• 01-12-2018, 10:51:41
    #1
    <form><form></form</form>
    işin aslı yapı bu şekilde

    kısaca kodla geçeyim.

    <form action="" method="post">
    <button class="btn btn-kirmizi" type="submit" id="toplusil" class="btn btn text-white">
    <i class="fa fa-trash" aria-hidden="true"> Seçilenleri Sil</i>
    </button>
    <table id="myTable" class="table table-hover no-wrap">
    <thead>
    	<tr class="baslik">
    	  <th onclick="sortTable(0)">SEC</th>
    	  <th onclick="sortTable(1)">ID</th>
    	  <th onclick="sortTable(2)">IP</th>
    	  <th onclick="sortTable(3)">Ad Soyad</th>
    	</tr>
    </thead>
    <tbody>
    <?php 
    $mesaj	= q("SELECT * FROM mesaj  order by ID DESC");
    $al		= $mesaj->fetchAll();
    foreach ($al as $dongu) { ?>
    <form method="POST" action="" id="kaydet" onClick="return false">
    <tr class="unread">
    <td class="col-xs-2">
    	<div class="custom-control custom-checkbox mr-sm-2">
    		<input type="checkbox"  name="toplusil[]" class="custom-control-input" id="checkbox<?=$dongu['id'];?>" value="<?=$dongu['id'];?>">
    		<label class="custom-control-label" for="checkbox<?=$dongu['id'];?>"></label>
    	</div>
    </td>
    <td class="text-left"><?=$dongu['id'];?></td>
    <td class="text-left"><?=$dongu['ip'];?></td>
    <td class="text-left"><?=$dongu['adsoyad'];?></td>
    <td class="text-left">
    	<a href="deneme.html?sil=<?=$dongu['id'];?>"><span class="btn btn-danger">
    	<i class="fa fa-trash"></i></span></a>
    	<button type="submit" name="kaydet" class="btn btn-success">Kaydet</button>
    </td>
    </tr>
    <input type="hidden" class="form-control" name="idsi" value="<?=$dongu['id'];?>">
    <input type="hidden" class="form-control" name="ip" value="<?=$dongu['ip'];?>">
    <input type="hidden" class="form-control" name="baslik" value="<?=$dongu['baslik'];?>">
    <input type="hidden" class="form-control" name="adsoyad" value="<?=$dongu['adsoyad'];?>">
    <input type="hidden" class="form-control" name="email" value="<?=$dongu['email'];?>">
    </form>
    <?php }?>
    </tbody>
    </table>
    </form>
    yapı bu şekilde php kodlarım ise

    	if(isset($_POST["toplusil"])){
    		$topsil = implode(",",$_POST["toplusil"]);
    		 echo $topsil;
    // kodlar burda tek başına sorunsuz
    		}
    toplu silme işlemi için kullandığım kod blok başlangıcı

    if(isset($_POST["kaydet"])){
    	$id = $_POST['idsi'];
    	$ip = $_POST['ip'];
    	$baslik = $_POST['baslik'];
    	$adsoyad = $_POST['adsoyad'];
    	$email = $_POST['email'];
    echo $id;
    echo $ip;
    echo $baslik;
    echo $adsoyad;
    echo $email;
    // işlemler
    
    }
    bude diğer işlem için kullandığım kod bloğu

    şimdi anlatmak istediğim sorun şu

    farketmişsiniz
    <form>
    <form>

    </form>
    </form>

    şeklinde bir yapı var
    bu form tablolardan birini silince
    tek form olunca
    toplu sil sorunsuz çalışıyor fakat bu sefer diğer kısım aktarma ve silme işlemi çalışmıyor
    2. formu eklediğimde aktarma ve silme çalışıyor fakat
    toplu silmede ilk gelen verinin id sini alıyor diğer verinin idlerini almıyor haliyle silme işlemi sadece en üstteki ilk veri için geçerli oluyor

    bu sorunu bi türlü aşamadım.

    input ile gizli action ajax button lara name değeri atamasına kadar denemediğim yöntem kalmadı
    hatta 2 form var diye 2. post u else if olarak bile tanımladım sorun aynen devam ediyor.

    bu konuda siz değerli arkadaşların desteğine ihtiyacım var
    pdo zaten zorlyor bide böyle saçma etiket sorunları yoruyor insanı

    milyonlarca div birbiri ile kapattıktan sonra çakışmazken
    formların çakışmamasıda w3 ün ciddi suçudur
  • 01-12-2018, 13:23:53
    #2
    Üyeliği durduruldu
    iç içe form standartların dışında ve standart olarak çalışmaması normal.
  • 01-12-2018, 14:01:35
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    https://www.w3.org/TR/xhtml1/#prohibitions

    şurada html elementleri ile ilgili olarak belirtilen yasaklara göz atabilirsiniz hocam. Orada şöyle bir ifade var.

    "form must not contain other form elements."

    Yani diyor ki bir form elementi başka bir form elementini içeremez. @UsrBin hocamın dediği gibi çalışmaması normal
  • 01-12-2018, 23:52:50
    #4
    TEOVyazilim adlı üyeden alıntı: mesajı görüntüle
    https://www.w3.org/TR/xhtml1/#prohibitions

    şurada html elementleri ile ilgili olarak belirtilen yasaklara göz atabilirsiniz hocam. Orada şöyle bir ifade var.

    "form must not contain other form elements."

    Yani diyor ki bir form elementi başka bir form elementini içeremez. @UsrBin hocamın dediği gibi çalışmaması normal

    valla dostum formun içinde dışında olması hiç bir şey değişmiyor tabi standartlarda öyle dir

    ben gizli olan giden formu form / form un dışına taşıyıp js ile gizli input dan submit veriyorum ama yine sonuç aynı

    toplu silme işinde her zaman sıkıntı çıkarıyor
    yada aktarma işinde birinden vazgeçicem ama illet ettim nasıl çalışmaz diye 2 gündür okumadığım denemediğim yöntem kalmadı

    normalda post["form1"] 2 3 4 5 6 7 diye 100 tane form çalıştırırsın tek sayfada post işlemi ile ama toplu silme işlemi bi başka işliyor anlamadım gitti.
    aktarma çalıştığı zaman toplu sil de checkbox lar sadece en üstteki verinin id sini dizi ye dönüştürüyor diğerlerini boş çekiyor

    toplusilme çalıştığı zaman

    atıyorum orta bir yerdeki veriyi aktar dediğim zaman id si en düşük olan id yi aktarma işlemini yapıyor doğru idyi almıyor

    ama ikiside bireysel halde iken de sapa sağlam sorunsuz çalışıyor.
  • 05-12-2018, 03:52:26
    #5
    sorunu kendim halletim

    bilginiz olsun ne kadar çalışmaz densede
    <form>
    <form>
    <form>
    <form>
    </form>
    </form>
    </form>
    </form>

    her şekilde çalışıyor arkadaşlar.
    cevap veren arkadaşlara teşekkürler konu kilit.
  • 05-12-2018, 14:31:08
    #6
    Konunun kilitlenmesi yerine çözüm üretmeye çalışalım isterseniz? Çünkü standart dışı işlemler illa ki başınızı bir yerde ağrıtacaktır. Doctype'ınız muhtemelen traditional, bu yüzden çalışıyor ama ufacık bir tarayıcı güncellemesinde başınızı ağrıtacaktır.

    Amacınız anladığım kadarıyla toplu silme işlemi. PHP ve HTML işbirliği burada size şöyle bir kolaylık sunar, bir formda birden fazla submit butonu varsa, hangisine basılırsa onun ismi $_POST değişkeni içinde gelir.

    Örneğin aşağıdaki kodu tarayıcınızda çalıştırın ve Sil butonuna basın, ekrana "sil" key'ine sahip bir array çıktılayacaktır. Kaydet butonuna bastığınızda ise "kaydet" key'ine sahip bir array çıktılayacaktır.:
    <?php
    if($_POST)
    {
    print_r($_POST);
    }
    ?>
    <form action="" method="post">
    <input type="submit" name="sil" value="Sil">
    <input type="submit" name="kaydet" value="Kaydet">
    </form>
    Bu durumda şu işlemi yapabiliriz.
    <?php
    if($_POST)
    {
    if(isset($_POST['sil']))
    {
    // Sil işlemlerini burada yapabilirsiniz.
    }
    
    if(isset($_POST['kaydet']))
    {
    // Kaydet işlemlerini burada yapabilirsiniz.
    }
    
    }
    
    ?>
    <form action="" method="post">
    <input type="submit" name="sil" value="Sil">
    <input type="submit" name="kaydet" value="Kaydet">
    </form>
    Yukarıdaki kontrolleri sağladığınızda en dışarıdaki kapsayıcı form iş görecek, içeride tekrar tekrar form yazmanıza gerek kalmayacaktır.

    aketasarim adlı üyeden alıntı: mesajı görüntüle
    sorunu kendim halletim

    bilginiz olsun ne kadar çalışmaz densede
    <form>
    <form>
    <form>
    <form>
    </form>
    </form>
    </form>
    </form>

    her şekilde çalışıyor arkadaşlar.
    cevap veren arkadaşlara teşekkürler konu kilit.
  • 06-12-2018, 06:35:14
    #7
    şimdi durum söyle kardeşim bitane 1. form tablom toplu silme işlemi için.
    2. form alanı bunun içinde olması gerekiyor oda trancute işlemi için
    3. form alanıda foreach içinde gizli inputları post etmesi için

    bunda bir sorun yaşıyordum biri çalışşsa diğeri çalışmıyordu ben parçaladığım html bölümlerinin içine kullanmıştırm ilk form tablosunu onu sayfanin başlagın div in üstüne alınca sorun tamamen ortadan kaldı
    zaten submit işlemlerinde her zaman name değeri kullanıyorum boş submit hiç atmadım şimdiye kadar karışıklık olmasın diye.yine cevabın ve yorumun için teşekkürler. not aldım bir köşeye.