2013-04-12 2 views
0

페이지가로드 될 때 데이터를로드하고 싶습니다. 그러나 삭제를 시도하면 기능이 작동하지 않고 페이지를 새로 고치지 않고 테이블에 효과를 삽입해야합니다. 이로드 페이지에 레코드를 표시합니다.

index.php를

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(e) { 
     $("#Submit").click(function(e) { 

     var name = $('#name').val();   
     var message=$('#message').val(); 
     if($(":text").val().length==0)      
     { 
      $(":text").after('<span class="error">Field cannot be empty</span>'); 
      $('#name').addClass('error'); 
      $('#message').addClass('error');     
      return; 
     } 
     else{ 
      $('#name').removeClass('error'); 
      $('#message').removeClass('error'); 
      //$('#propspectDiv').removeClass('error');       
      $('#propspectDiv').html('Submitting your Request.<img src="ajax.gif" />'); 
      $.ajax({ 
        url : 'data.php',     
        data:{ 
         "name" : name, 
         "message" : message    
        }, 
        success : function(data){ 
         window.setTimeout(function(){ 
          $('#propspectDiv').html('Your Name is added to our records'); 
          $('#data').css("display","block"); 
          $('#data').html(data);    
         }, 2000); 
        }, 
        complete:function(){ 
        $('#myform').each(function(){ 
        this.reset(); 
       }); 
      } 
       }); 
     } 

     }); 

    $("a").click(function() { 
     $.post('delete.php',{ id: $(this).attr("id")}); 
    }); 
    }); 

    </script> 

    </head> 
    <body> 
    <form id="myform"> 
    <div id="wrapper"> 
    Name : <input type="text" id="name" /> 
        </br> 
    Message : <input type="text" name="message" id="message" /> 
        </br> 

     <input type="button" value="Submit" id="Submit" /> 
     <div id="propspectDiv"></div> 
     <table id="data" border="1" style="display:none;"></table> 
    </div> 
    </form> 
    </body> 

data.php

<?php 
$name = $_REQUEST['name']; 
$message = $_REQUEST['message']; 
include('connection.php'); 

$sql = "INSERT INTO login (username,message) VALUES ('$name','$message')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 

    $sqlnew = 'Select * from login order by id ASC'; 
    $res = mysql_query($sqlnew); 
    echo'<tr>'; 
    echo'<td>SrNo.</td>'; 
    echo '<td>Name:</td>'; 
    echo '<td>Message:</td>'; 
    echo '<td>Delete</td>'; 
    echo'</tr>'; 
    $i=1; 
    while($row = mysql_fetch_array($res)) 
    { 
     echo '<tr>'; 
     echo'<td>'.$i.'</td>'; 
     echo'<td>'.$row['username'].'</td>'; 
     echo '<td>'.$row['message'].'</td>'; 
     echo"<td id=td1> 
      <a href=delete.php?id=".$row['id']."&type=Delete>Delete</a></td>"; 
     echo '</tr>'; 
     $i++; 
    } 

?> 

delete.php

에서 수행되는 어떤 변화 내 코드를 확인 또한

<a href=delete.php?id=".$row['id']."&type=Delete>Delete</a></td>"; 

:

<?php 
include('connection.php'); 

    if(isset($_REQUEST["id"])) 
    { 
    $cmd=mysql_query("delete from login where id=" .$_REQUEST["id"] .";"); 
    header("location: index.php"); 
    } 


?> 

답변

0

은 삭제 기존 링크에는 ID 속성이 없습니다

$("a").click(function() { 
    $.post('delete.php',{ id: $(this).attr("id")}); 
}); 

... 당신이 그것을 설정 링크의 ID 속성을 부여 잡고 있지만 것 같은데 - jquery 클릭 이벤트가 모든 작업을 수행 할 때 href가 delete.php를 가리키는 링크를 사용할 필요가 없을 것입니다. 당신이 JQuery와 통해 (삭제 방법 포함) HTML을 삽입하기 때문에 코드가 몇 가지 사소한 버그가 수 있도록

또한, 당신은 내가 커프를이를하고 있어요

이벤트 "에"를 사용해야 할 수 있습니다 그러나 나는 이것이 당신이 먹고 싶어 경로 ...이라고 생각

은 다음과 같을 수 수정 :

JQUERY

$("a").on("click", function(e) { 
    e.preventDefault(); 
    $.post('delete.php',{ id: $(this).attr("id")}); 
    return false; 
}); 
주의 할

LINK

echo"<td id=td1> 
    <a id='".$row['id']."' href='#'>Delete</a>"; 
echo '</tr>';  

몇 가지 ...

1 - 내가 실제로 레코드가 나는 적절한 테이블 행을 제거하기 전에 삭제 된 검증이 검증 아니에요 위 - 당신이 뭔가를 구현할 수 있습니다 확인이

2 - 테이블 행을 제거하는 대신 단지 데이터를 repulling하고 출력하여 일반적으로 테이블을 업데이트하는 것입니다 - 당신은 내가 그것을 도움이

+0

감사의 의미를 알고있는 경우 레코드를 삭제하지만 html 테이블을 삭제 한 후에는 – chithon

+0

레코드를 삭제 한 후 on ("click", function (e) {메서드 안에서 레코드를 삭제 한 후에는 언제든지 아약스를 통해 테이블을 업데이트해야합니다. 다음과 같이 HTML을 출력합니다 : $ ('# data') .html (data); - 내가 뭐라는지 알 겠어? – 99823

+0

실제로 삭제 된 표 행을 제거 할 수 있습니다. 위의 업데이트 된 코드를 확인하십시오. $ (this) .parent(). remove(); - 이것은 당신에게 필요한 것을 얻을 수 있습니다 – 99823

관련 문제