2017-09-04 5 views
0

간단한 PHP 블로그 시스템을 만들었습니다. 게시물 추가 페이지에서 사용자는 제목과 본문을 제공 할 수 있습니다. 게시물은 사용자가 게시물을 삭제할 수있는 게시물 페이지에 있습니다.PHP & AJAX 삭제는 첫 번째 행에서만 작동합니다.

내 문제는 : 첫 번째 게시물 만 삭제할 수 있습니다. 다른 사람들은 그렇지 않습니다.

여기 쇼 내 코드 게시물입니다 :

<?php 
$database->query('SELECT * FROM posts'); 
$rows = $database->resultSet(); 
?> 

<div class="container"> 
<?php foreach ($rows as $row) : ?> 
<h2><?php echo $row['title']; ?></h2> 
<p><?php echo $row['body']; ?></p> 
<small><?php echo $row['create_date'] ?></small> 
<form method="post"> 
    <input id="deleteid" type="hidden" name="delete_id" value="<?php echo 
    $row['id'] ?>"> 
    <input id="delete_button" class="btn btn-primary" type="submit" 
    name="delete" value="Delete"> 
</form> 
<?php endforeach; ?> 
<br><br> 
</div> 

그리고 이것은 내 AJAX 코드 :

$("#delete_button").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "?action=delete", 
     data: "delete_id=" + $("#deleteid").val(), 
     success: function (result) { 
     if (result == 1) { 
      //window.location.assign("views/posts.php"); 
     } else { 
      alert("Error"); 
     } 
     } 
    }); 
    }); 

답변

1

여러 입력/DIV 또는 다른 HTML 태그와 동일한 ID를 사용할 수 없습니다. id = "deleteid"를 class = "deleteid"로 변경하고 클릭 이벤트도 변경하십시오. 그래서이 라인으로 변경됩니다 -

<input class="deleteid" type="hidden" data-deleteid="<?php echo 
    $row['id'] ?>" name="delete_id" value="<?php echo $row['id'] ?>"> 

그리고 당신은 아약스 코드로 변경됩니다 -

$(".delete_button").click(function() { 
    var deleteid = $(this).data('deleteid'); 
    $.ajax({ 
     type: "POST", 
     url: "?action=delete", 
     data: "delete_id=" + deleteid , 
     success: function (result) { 
     if (result == 1) { 
      //window.location.assign("views/posts.php"); 
     } else { 
      alert("Error"); 
     } 
     } 
    }); 
    }); 
+0

대단히 감사합니다! 그것은 작동합니다. :) – mark7474

관련 문제