2013-04-22 4 views
0

jQuery Ajax 함수를 사용하여 MySQL 데이터베이스의 행을 삭제하려고합니다. 게시물 "게시물 삭제"링크를 클릭하면 행 삭제 기능을 실행하는 onClick 이벤트가 트리거됩니다.Ajax 삭제 기능이 작동하지 않습니다.

이 지금까지 내 코드입니다 :

는 첫째로 각 하나를 삭제하는 링크와 함께 게시물을 표시합니다. 이어서

foreach($postarray AS $value){ 
echo '<div class="item">'.$value['post_title'].' , <a href="#" class="delete_link" value="'. $value['post_id'] .'">Delete Post</a></div>'; 

} 

JQuery와 :

$(document).ready(function(){ 
$(".delete_post").click(function(){ 
     var id = $(this).attr("value"); 

     function deletePost(id){ 
      $.ajax({ 
       type: "POST", 
       url: "delete_post.php", 
       data: {id: id}, 
       success: function(data){ 
        alert("Post deleted"); 
       } 
      }) 
     } 
    }); 

}); 

delete.php 번호 :

//Start the session 
session_start(); 
require_once('func/auth.class.php'); 
require_once('func/functions.php'); 
require_once('func/db.class.php'); 

// Check if user is logged in 
if(!$_SESSION['is_admin'] || empty($_POST['id'])){ 
    header("Location: index.php"); 
} 

$post_id = $_POST['id']; 
delete_post($post_id); 

delete_post() 기능 :

function delete_post($post_id){ 
     global $dbh; 

     $stmt = $dbh->prepare("DELETE FROM mjbox_posts WHERE post_id = ?"); 
     $stmt->bindValue(1, $post_id, PDO::PARAM_INT); 
     $stmt->execute(); 

     if($stmt->rowCount() != 0){ 
      return TRUE; 
     }else{ 
      return FALSE; 
     } 
    } 

현재이 방법 delet되지 데이터베이스에서 게시물을 보내고 나는 왜 작동하지 않을 수 있습니다.

+1

내가 나중에, 난 단지 "delete_link"클래스 참조 jcho360 @ 클래스' "delete_post"' – jcho360

+0

이 표시되지 않는 –

+1

내 나쁜 변경하는 것을 잊었다 당신이 볼 수있는 아약스 응답이 무엇 스택 – crm

답변

1

jcho360이 (가) 코멘트에서 언급했듯이 click 이벤트에 바인딩 할 때 CSS 클래스에서 실수를 범했습니다.

일단 수정하면 여전히 작동하지 않습니다. click 이벤트가 발생하면 게시물을 삭제하지만 호출하지 않는 함수를 선언하고 있습니다. 한 가지 해결 방법은 다음과 같이 변경할 수 있습니다.

$(document).ready(function(){ 
    $(".delete_link").click(function(){ 
     var id = $(this).attr("value"); 

     $.ajax({ 
      type: "POST", 
      url: "delete_post.php", 
      data: {id: id}, 
      success: function(data){ 
       alert("Post deleted"); 
      } 
     }); 
    }); 
}); 

클릭 이벤트가 발생하면 실제로 요청하는 것입니다.

더 자세히 나는 아약스 호출에서 "delete_post.php"를 요청했지만 PHP 파일은 delete.php라고 언급했다. 그것도 고정해야합니다.

브라우저에서 관리자를 사용하여 링크를 클릭하면 어떤 일이 발생하는지 볼 수 있습니다. 그것은 요청을 전혀하지 않습니까? id 매개 변수가 올바르게 설정되어 있습니까? 기타 등등.

관련 문제