2011-07-06 47 views
0

刪除鏈接,這是刪除鏈接與JS確認+ PHP

<div class="artworkdelete"> 
    <a href="javascript:void(0);" id="del_<?=$artworkDetails['artwork_id'] ?>_<?=$temp_cat_id; ?>" onclick="deleteThisArtWork(this.id)">Delete</a> 
</div> 

顯然,當點擊該鏈接時,門戶網站會自動刪除數據,我認爲這是一個Ajax的事情,因爲網頁不刷新。於是我就問添加一個確認彈出要求用戶點擊yes或如果他想刪除的數據;以及確認框之內,它應該提到的數據的名稱,如如

被刪除無
"are you sure you want to delete row_title ?" 

這裏的deleteThisArtWork()

 function deleteThisArtWork(artwork_id){ 
         var artwork_id = artwork_id.split('_'); 
         var cat_id=artwork_id[2]; 
         artwork_id = artwork_id[1]; 
         //$('#divStatus').html('processing request, please wait'); 
         //$(".pleaseWait").dialog("open"); 
         openLightBox(); 
         $.ajax({ 
          type: 'POST', 
          url: '<?php echo BASE_URL;?>ajax/ajax_methods_gallery.php', 
          data: 'deleteartwork=yes&artwork_id='+artwork_id+'&category_id='+cat_id, 
          success: function(msg){ 
          //alert(msg); 
          msg = 'done'; 
          var status=msg; 
          var deleted=''; 

          if(status == 'done') { 
           var temp_lid = 'li_'+artwork_id+'_'+cat_id+'_'; 
           //alert(counter); 
           for(var v=1;v<counter;v++){ 
            var curid = tempIdArr[v]; 
            curid = curid.split('#'); 
            var curlid = curid[0]; 
            if(temp_lid == curlid){ 
             var del_aw_pos = curid[1]; 
             break; 
            } 
           } 

           del_aw = temp_lid+'#'+del_aw_pos; 
           var i = 1; 
           var j =0; 
           var op = false; 
           var delpoint; 
           var endpoint; 
           var delcatid = ''; 
           var artcounter = 0; 
           var artcounterArr = new Array(); 
           $(".sortli").each(function(){ 
            var atid = this.id.split('_'); 
            //if(atid[2]!=cat_id)return; 
            if(this.id == del_aw){ 
             deleted = 'yes'; 
             delcatid = atid[2]; 
             $(this).remove(); 
             op = true; 
             i=i+1; 
             delpoint=i-1; 
             //alert('D'+delpoint); 
             //return; 
            } 
            if(atid[2]==cat_id){endpoint = i-1;artcounter=artcounter+1;} 
            else if(j==0 && artcounter > 0){ 
             if(artcounter>0)artcounter = artcounter-1; 
             //else artcounterArr[j] = 0; 
             artcounterArr[j] = artcounter; 
             j=j+1; 
             artcounter = 0; 
            } 
            i = i + 1; 
           }); 
           //alert(delpoint) 
           //alert(endpoint); 
           //alert(artcounterArr[0]); 
           if(op){ 
             for(var k=delpoint; k<counter-1;k++){ 
              var orderVal1 = tempOrderArr[k]; 
              if(k<endpoint)document.getElementById('sortvalid_'+(k+1)).innerHTML = orderVal1; 
              document.getElementById('sortvalid_'+(k+1)).id = 'sortvalid_'+(k); 
              document.getElementById('sortdn_'+(k+1)).id = 'sortdn_'+(k); 
              document.getElementById('sortup_'+(k+1)).id = 'sortup_'+(k); 
              var t = tempIdArr[(k+1)].split('#'); 
              t=t[0]; 
              document.getElementById(tempIdArr[(k+1)]).id = t+'#'+k; 
             } 

            $(".rowHead").each(function(){ 
             var taid = this.id; 
             var sp = this.id.split("^"); 
             var a1 = sp[1]; 
             //alert(a1); 
             //alert(cat_id); 
             if(parseInt(a1)>parseInt(cat_id)){ 
              var a2 = sp[2]; 
              var ta = 'lititle^'+a1+'^'; 
              //alert(ta); 
              document.getElementById(taid).id = ta+(a2-1); 
             } 
            }); 

            var a2temp; 
            var a1temp; 
            var delcat=null; 
            var rowHeadLast; 

            $(".rowHead").each(function(){ 
             //var taid = this.id; 
             rowHeadLast = this; 
             var sp = this.id.split("^"); 
             var a1 = sp[1]; 
             var a2 = sp[2]; 
             if(a2temp == a2 && delcat==null){delcat = a2temp; delcatid=a1temp;} 
             a2temp = a2; 
             a1temp = a1; 

            }); 
            var delok = false; 
            $(".rowHead").each(function(){ 
             //var taid = this.id; 
             //alert(deleted); 
             var sp = this.id.split("^"); 
             var a1 = sp[1]; 
             var a2 = sp[2]; 
             if(delcat == a2 && a1==delcatid && deleted==''){delok= true;deleted='yes';$(this).remove();} 

            }); 
            //alert(delcatid); 
            //if(!artcounterArr[0])alert('d'); 
            if(!delok){ 
             $(".rowHead").each(function(){ 
              var sp = this.id.split("^"); 
              var cid_t = sp[1]; 
              if(!artcounterArr[0] && delcatid == cid_t)$(this).remove(); 
              //else if(artcounterArr[0]<=0)$(this).remove(); 
             }); 

            } 
            if(deleted ==''){ 
             $(rowHeadLast).remove(); 
            } 
           } 
           setDivsInArray(); 
           //$(".pleaseWait").dialog("close"); 
           closeLightBox(); 
          } 
          else if(status == 'DBDelete:error'){ 
           //$('#row_'+artwork_id).fadeOut(3500); 
           $('#divStatus').fadeIn(500); 
           $('#divStatus').html('<b>Artwork Delete Error</b>'); 
           $('#divStatus').fadeOut(4500); 
          } 


          } 
         }); 

     } 

這是相當長的,我想我並不需要所有的這些東西,如果需求只是刪除數據時「是」從點擊的功能在確認彈出框

現在,這裏的刪除PHP函數

function deleteArtWork($artwork_id,$category_id){ 

    $artwork_cat_lookup_del = "delete from artwork_category_lookup where artwork_id = '$artwork_id' AND category_id='$category_id'"; 
    if(mysql_query($artwork_cat_lookup_del)){  
     $userObj = new User(); 
     $allArtWorkByCat = $userObj->allArtWorkByCat($category_id); 
     for($itr = 0; $itr<count($allArtWorkByCat); $itr++){ 
      $ordr = $itr + 1; 
      $art_id = $allArtWorkByCat[$itr]['artwork_id']; 
      $updateSQL = "update artwork_category_lookup set artwork_display_order='$ordr' where artwork_id = '$art_id' AND category_id = '$category_id'"; 
      mysql_query($updateSQL); 
     } 
     $action = $userObj->userActions('Artwork id: '.$artwork_id.' is deleted', 'Gallery'); 
     $userObj->setActionintoDB($action); 
     echo 'done'; 
    } 
    else echo 'DBDelete:error'; 
    return; 

回答

1

我不認爲你想開始改變上面的代碼,因爲這是用來傳遞相關數據通過AJAX的PHP腳本。

你需要的是一個JavaScript提示攔截鏈接點擊給用戶一個選擇繼續或取消刪除操作。它是否正確?

http://www.tizag.com/javascriptT/javascriptconfirm.php

在「deleteThisArtWork」 javascript函數,你需要顯示提示符的開始。

function deleteThisArtWork(artwork_id){ 
    var answer = confirm("Are you sure you want to delete this record?"); 
    if (answer){ 
     //do the rest of the function as usual, i.e. delete row via ajax. 
    }else{ 
     return false; 
    } 
} 

應從意外刪除記錄沒有至少不必在確認彈出不慎點擊並停止用戶!

如果要在確認彈出動態中生成文本,您需要將動態文本作爲變量傳遞給「deleteThisArtwork」方法,或者使用某個javascript從頁面上的其他元素中提取該文本。

+0

如何獲得的name屬性的值,並將其assigne的變種? NAME =「<?PHP的echo $ artworkDetails [‘artwork_title’];?> ....這樣我可以有確認框詢問」你確定要刪除artwork_title? 「 – sasori

+1

你可以將它包含的JavaScript方法調用作爲第二個參數,或只是你上面說什麼,一個字段添加到頁面,只要你有元素ID或類也可以是任何你喜歡的。如果將它放入隱藏的輸入中,使用document.getElementById(「your_hidden_​​field_id」)可以很容易地得到值。 –