2009-06-03 7 views
0

나는 php/mysql과 protype.js를 사용하여 테이블에서 레코드를 삭제합니다. 문제는 그리드에서 레코드를 삭제 한 후 그리드가 템플릿에서 자동으로 업데이트되지 않는다는 것입니다.프로토 타입 js를 사용하여 PHP에서 삭제 작업

1 단계 :

내 코드입니다 index.php를

<?php 
    require("Connection.php"); 
    $sql = "SELECT * from tbluser"; 
    $result=mysql_query($sql); 
?> 
<html> 
<head> 
    <script src="prototype.js" type="text/javascript"></script> 
    <script src="scriptaculous-js/src/scriptaculous.js" type="text/javascript"></script>  
    <script language="javascript"> 
     function fnDeleteRecord(id) 
     { 
      new Ajax.Request('delete.php?action=Delete&id='+id,{method:'get'}); 
     } 
    </script> 
</head> 
<body> 
<table id="userrecords" border="1" cellpadding="0" cellspacing="0" width="700"> 
    <tr> 
     <th> User Name </th> 

     <th> Password </th> 

     <th> Address </th> 

     <th> Phone Number </th> 

     <th> Action </th> 
     <th> Status </th> 
    </tr> 
<?php 

while($row = mysql_fetch_array($result)) 
{ 
    echo "<tr id='".$row[id]."'>"; 

    echo "<td>".$row['user_name']."</td>"; 

    echo "<td>".$row['pass']."</td>"; 

    echo "<td>".$row['address']."</td>"; 

    echo "<td>".$row['phone_no']."</td>"; 

    echo "<td><img src='images/spinner.gif' id='a[$row[id]]' alt=icon border=0 /><a href='javascript:void(0);' onclick=fnDeleteRecord('".$row['id']."'); >Delete</a></td>"; 

    if($row['status'] == 'enabled') 
     echo "<td><img src='images/spinner.gif' id='a[$row[id]]' alt=icon border=0 style='display:none;' /><img src='images/enable.png' alt=icon border=0 onClick=fnUpdateStatus('".$row['id']."','disabled') /></td>"; 
    else if ($row['status'] == 'disabled') 
     echo "<td><img src='images/spinner.gif' id='a[$row[id]]' alt=icon border=0 style='display:none;' /><img src='images/disable.png' alt=icon border=0 onClick=fnUpdateStatus('".$row['id']."','enabled') /></td>"; 

    echo "</tr>"; 
} 
    echo "</table>"; 

    mysql_close($con); 

?> 
</body> 
</html> 

2 단계 : delete.php 당신이 그 테이블 행을 제거 할 수 있습니다

<?php 
require_once('connection.php'); 
if ($_GET['action']) 
{ 
    switch($_GET['action']) 
    { 
     case 'Delete': 
      $sql = "Delete from tbluser where id ='".$_GET['id']."'"; 
      $result = mysql_query($sql); 
      if(!$result) 
       echo "some problem occured during delete operation"; 
      break; 
    } 
} 
?> 
+0

관련 코드 샘플을 게시 할 수 있습니까? 또한이 브라우저에서 어떤 브라우저를 테스트 해 보셨습니까? –

+3

GET 요청에 따라 파괴적인 작업을해서는 안된다는 점을 지적하고 싶습니다. 기술적 인 이유로 다양한 이유로 나쁜 습관 일뿐만 아니라 실제로 HTTP 사양을 위반 한 것입니다. http://www.w3.org/2001/tag/doc/whenToUseGet.html#safe –

답변

1

프로토 타입 :

<script language="javascript"> 
    function fnDeleteRecord(id) 
    { 
     new Ajax.Request('delete.php?action=Delete&id='+id,{method:'get'}); 
     $(id).remove(); // because <tr id='".$row[id]."'> :) 

    } 
</script> 
+0

훨씬 더 좋은 답변 내 +1보다 – ichiban