php
  • jquery
  • html
  • ajax
  • 2012-06-11 54 views 3 likes 
    3

    你好,此刻我試圖使用jQuery,以獲得與Ajax的多個字段的ID併發送數據通過PHP刪除它。 到目前爲止,我能夠刪除的項目,但我不能刪除其他ID所以和示例:jQuery從數據庫的ajax元素刪除ID和刷新

    我有一個for循環究竟會得到的信息關閉數據庫爲:

    for($i=0; $i < $data; $i++) { 
        echo " 
        <div class='list-item' data-action='delete' id='".$Data[$i]['ID']."'> 
        <a class='title link' href='".$Data[$i]['URL']."' target='_blank'>".$Data[$i]['name']."</a> 
        <span class='checkbox' id='".$Data[$i]['ID']."' value='".$Data[$i]['ID']."'></span> 
        <div class='thumb'>        
        <img src='".$Data[$i]['thumb']."' alt='' width='110' height='99'>        
        <span class='attr'>".$Data[$i]['width'].'x'.$Data[$i]['height']."</span>         
        <span class='size'>".$Data[$i]['size']."</span>       
        </div>       
        <div class='date'>".$Data[$i]['Date']."</div>      
        </div> 
        "; 
        } 
    

    通知你怎麼看$數據[$ i] [「ID」]與它會打印出:

    <div class="list-item" data-action="delete" id="89"> 
    <a class="title link" href="http://URL" target="_blank">NAME</a> 
    <span class="checkbox" id="89" value="89"></span> 
    <div class="thumb"> 
    <img src="thumb.png" alt="" width="110" height="99"> 
    <span class="attr">100x100</span> 
    <span class="size">85.2 KB</span></div> 
    <div class="date">2012-06-11 01:25:20</div> 
    </div> 
    
    <div class="list-item" data-action="delete" id="90"> 
    <a class="title link" href="http://URL" target="_blank">NAME</a> 
    <span class="checkbox" id="90" value="90"></span> 
    <div class="thumb"> 
    <img src="thumb.png" alt="" width="110" height="99"> 
    <span class="attr">100x100</span> 
    <span class="size">85.2 KB</span></div> 
    <div class="date">2012-06-11 01:25:20</div> 
    </div> 
    

    所以我使用jQuery類添加到兩個類=「複選框」和class =「list-item」與selected,以便當點擊或.on('點擊'功能,它會做一個事件確認窗口顯示「你確定要刪除嗎?」如果確定,然後抓住每個元素的ID並使用ajax發佈數據以立即刪除該項目! 事情是我需要它在多個ID上工作,並且它不會將selected的類添加到class =「checkbox」和class =「list-item」的所有類中,需要它具體指定,我選擇與84,94,99,& 100的ID,如果我做的是選擇一切都應該有一流的selected不是每個ID

    這是我試圖努力得到這個工作

    <script> 
    $(function(){ 
    $('.list-item').on('click', function(e) { 
    $(this).addClass("selected"); 
    if(window.confirm('Are you sure you want to remove?')) { 
    id = $(this).attr("id"); 
         //alert(id); 
         $.ajax({ 
          type: 'post', 
          url: 'something.php?action=delete&id='+id, 
          dataType: 'json', 
          data: { 
    
          }, success: function(data) { 
           if(data.error === true) 
            { 
             $.errRorBar({ bdS: "error", html: data.message , delay: 5000 }); 
            } 
            else 
            { 
            $.errRorBar({ bdS: "success", html: data.message , delay: 5000}); 
            } 
          }, error: function(XMLHttpRequest, textStatus, errorThrown) { 
           $.errRorBar({ bdS: "error", html: "Opps! Something went wrong!" , delay: 5000 }); 
    
           console.log(XMLHttpRequest); 
           console.log(textStatus); 
           console.log(errorThrown); 
    
           // console.log(XMLHttpRequest.responseText); 
          } 
    
         }); 
         return false; 
        } 
    }); 
    }); 
    </script> 
    

    所以我怎麼能做到這一點,我怎麼能刷新更新列表使其隱藏或刪除它或什麼? 目前,它會從數據庫中刪除項目,但只有一次我選擇的一個項目,即使我有多個項目選擇,我會得到「未能刪除」的回報

    任何人都可以在這裏幫幫我? 我想我失去了一些東西,但希望這是我的情況很好地解釋了 感謝

    回答

    1

    尋找到你的代碼後,我發現一些小問題:

    1. 元素類列表項和跨度的DIV具有與dom規範相反的id的類複選框。 (在像div-89,span-89之類的ID之前使用前綴)。
    2. 您正在使用請求類型帖子,但在get方法的url中發佈數據。
    3. 您正在發送複選框的點擊事件請求,因此每次選擇它時都會觸發,因此無法使用此方法刪除多個項目。

    解決方案: 單擊該按鈕時創建一個單獨的刪除按鈕併發送請求。

    您的代碼將是:

    $('.list-item').click(function() { 
        $(this).addClass('selected'); 
    }); 
    
    $(.delete).click(function() { 
        var delIds = new Array(); 
        $('.selected').each(function() { 
         delIds.push($(this).attr('id')); 
        }); 
    
        $.ajax({ 
         url: 'something.php?action=delete&id='+delIds.join(), 
         dataType: 'json', 
         success: function(data) { 
            if(data.error === true) 
             { 
              $.errRorBar({ bdS: "error", html: data.message , delay: 5000 }); 
             } 
             else 
             { 
              $.errRorBar({ bdS: "success", html: data.message , delay: 5000}); 
             } 
           }, 
         error: function(XMLHttpRequest, textStatus, errorThrown)  { 
            $.errRorBar({ bdS: "error", html: "Opps! Something went wrong!" , delay: 5000 }); 
    
            console.log(XMLHttpRequest); 
            console.log(textStatus); 
            console.log(errorThrown); 
    
            // console.log(XMLHttpRequest.responseText); 
          } 
        }); 
    }); 
    

    希望這有助於你

    +0

    由於它的偉大工程:) – BarakaAka1Only

    +0

    很樂意幫助你... :) –

    相關問題