2015-10-09 68 views
0

我的代碼重複每個表。每次我想刪除ajax函數和文件delete.php。例子我在mysql中有100個表,我必須做100個delete.phpPHP可重複使用ajax刪除行

我可以使用1個delete.php作爲全部,與ajax函數一樣嗎?

PHP代碼:

echo"<td><a href='#' onclick='doConfirm(".$id.")'>Delete</a></td>"; 

Ajax代碼:

function doConfirm(id) 

    { 
     var xhttp; 

     var ok = confirm("Are you sure to Delete?") 
     if (ok) 
     { 

      xhttp= new XMLHttpRequest(); 
      xhttp.onreadystatechange = function() { 
      if (xhttp.readyState == 4 && xhttp.status == 200) { 
      document.getElementById('show1').innerHTML=xhttp.responseText; 
      } 


      } 

      xhttp.open("GET", "delete.php?id=" + id,true); 
      xhttp.send(); 
     } 
} 


delete.php 
$f0=$_GET['id']; 
delete($f0); 
+0

下面的答案是正確的。但我可以建議你開始使用jquery來最大限度地減少自定義編碼的數量。 – DTH

回答

0

傳遞另一個參數去onclick='doConfirm(".$id.")'作爲表名,然後通過再表名作爲查詢字符串的GET方法,然後在一個delete.php文件,你可以從你已經傳遞的文件中刪除。

防爆:echo"<td><a href='#' onclick='doConfirm(".$id.", "table1")'>Delete</a></td>";

阿賈克斯

function doConfirm(id, tableName) 

    { 
     var xhttp; 

     var ok = confirm("Are you sure to Delete?") 
     if (ok) 
     { 

      xhttp= new XMLHttpRequest(); 
      xhttp.onreadystatechange = function() { 
      if (xhttp.readyState == 4 && xhttp.status == 200) { 
      document.getElementById('show1').innerHTML=xhttp.responseText; 
      } 


      } 

      xhttp.open("GET", "delete.php?id=" + id + "table=" + tableName,true); 
      xhttp.send(); 
     } 
} 

希望這將有助於。

0

創建一個單一的主文件,它會做按需求量的.. 例,在tbl_book刪除,我們的網址會

xhttp.open("GET", "delete.php?target=book&id=" + id,true); 

現在在delete.php中,在開關或其他塊中執行它,或者如果其他塊

$target=$_REQUEST['target']; 
switch(target) 
{ 
case 'book': //your delete query for tbl_book 
break; 
case 'emp': //your delete query for tbl_emp 
break; 
} 

以上的例子只是給一個想法去做..Change按需求量的