2014-02-12 2 views
1

mysql 데이터베이스에 여러 행의 데이터가있는 웹 페이지가 있습니다. 인스턴트 메신저 아약스 난 그냥 지금은 웹 페이지를 새로 고치지 않고 행을 삭제하려면 이유 때문에 그것을 시도하십시오. 아약스의 코드가 맞는지 또는 제대로 사용했는지 묻고 싶습니다. 여기 내 코드가있다. 행을 삭제할 때 아약스를 사용합니다.

  mysql_connect("localhost","root",""); 
      mysql_select_db("eis"); 
      $e=0; 
      $d = mysql_query("select * from hrd_ot"); 

      while($x=mysql_fetch_array($d)){ 
      $e++; 
       print"<tr id='row".$e."'> 
       <td>{$x['nam']}</td> 
       <td>{$x['dep']}</td> 
       <td>{$x['job']}</td> 
       <td>{$x['dateofot']}</td> 
       <td>{$x['frt']}</td> 
       <td>{$x['tot']}</td> 
       <td>{$x['toh']}</td> 
       <td>{$x['app']}</td> 
       <td><a href='#' onclick=\"return samplexx(".$x['id'].",row".$e.")\">OK</a></td> 
       </tr>";} 

여기 내 아약스 스크립트 행의 생성입니다 | 소스 http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

<script> 
function samplexx(id,row) 
{ 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     row.style.display="none"; 
     } 
    xmlhttp.open("GET","sample.php?id="+id,true); 
    xmlhttp.send(); 
} 
</script> 

여기가

mysql_connect("localhost","root",""); 
mysql_select_db("eis"); 

mysql_query("delete from hrd_ot where id='{$_GET['id']}'"); 

도 가능 내 sample.php이다 내가 코드 row.style.display="none";

+0

코드가 작동합니까? – Konza

+0

네, 처음에는이 코드를 넣지 마십시오. row.style.display = "none"; 삭제 된 행은 남아 있지만 새로 고침하면 사라집니다. –

+0

'samplexx()'함수를 어떻게 호출하는지 보여주세요 – andyb

답변

0

나는이 라인을 사용하지 않고 삭제합니다 삭제하도록 선택했습니다 행 몇 가지 제안 사항이 있습니다.

"GET"메서드를 사용하는 대신 REST를 따르는 경우 DELETE 메서드를 사용해야합니다.

xmlHttpREquest의 상태를 확인할 수 있으면 좋을 것입니다.

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
//hide row 
} 

samplexx 함수의 행이 선택한 행에 대한 jquery 참조가 아닙니다. 그래서 당신은

$("#"+row).style.display="none". 

또는

document.getElementById(row).style.display="none" 

아래 라인 그냥 테이블에서 행을 숨 깁니다 사용해야 하나. 따라서 페이지를 새로 고치고 행 목록을 가져 오지 않아도됩니다. 서버가 200 상태로 리턴 된 경우에만이를 수행하십시오.

$("#"+row).style.display="none"; 
+0

선생님. 먼저 .readyState == 4 및 .status == 200의 사용법을 읽어야한다고 생각합니다. –

+0

나는 나의 대답을 편집했다. 확인해주십시오. – Konza

+0

선생님, 200 상태가 무엇인지 설명해 주시겠습니까? –

관련 문제