2014-01-22 1 views
0

PM 시스템에 colorbox를 사용하고 있습니다. 사용자가 언제든지 메시지를 삭제할 수 있도록 휴지통을 추가했습니다. 사용자가 자신의 PM (colorbox)을 열고 trash-btn을 클릭하여 메시지를 삭제하면 삭제되지 않습니다. 메시지를 직접 탐색하고 버튼을 누를 때마다 작동합니다. 그래서 colorbox가 열렸을 때만 작동합니다.Colorbox에서 db 행 (메시지)을 삭제하지 않습니다.

나는이 점에 익숙하지 않고 자바 스크립트를 많이 알지 못하므로 누구나 나를 도와 줄 수 있으면 좋겠다. 여기 내 편집을 할 코드

read_message.php 양식의 자세한 정보가 필요하면이, delete_message.php 페이지

<?php 
include '../../includes/db_connect.php'; 

sec_session_start(); 

//Delete bericht uit db 
if (isset($_POST['deleteMessage'])) { 
$msgID = $POST['message_id']; 
$msgTitle = $POST['message_title']; 
$deleteMessage = mysqli_query($mysqli,"DELETE FROM messages WHERE message_title = '$msgTitle' AND message_id = '$msgID'") OR die(mysql_error($mysqli)); 
    if($deleteMessage) { 
    echo "Deleted";  
    }else{ 
    echo "Error - Try again"; 
    } 
} 
?> 

하십시오입니다

echo ' 
     <div class="inboxMessage"> 
     <div class="inboxMessageImg NoNewMsg"></div> 
     <div class="inboxMessageHeader"> 
     <a id="ajax" class="inboxMessageLink" onclick="showMessage('.$row['message_id'].')">'.$row['message_title'].'</a> 
     <p class="inboxMessageStatus Read">'.$inboxMessageStatus_Read.'</p> 
     </div> 
     <div class="inboxMessageDescription">'.$inboxMessageDescription.'</div> 
     <div class="inboxMessageActions"> 
     <form method="post" action="message/delete_message.php"> 
     <input type="hidden" value="'.$row['message_title'].'" name="message_title"> 
     <input type="hidden" value="'.$row['message_id'].'" name="message_id"> 
     <input type="submit" class="deleteMessageIcon" value="" name="deleteMessage"> 
     </form> 
     </div> 
     </div>'; 

(이것은 colorbox에서 열립니다) 나에게 그렇게 알려줘.

미리 감사드립니다.

PS - 누구든지 양식에서 메시지 ID와 제목을 변경할 수 있으므로 메시지를 삭제할 수 있습니다. 우선, 사용자는 누구든지 elses 메시지의 전체 제목을 알아야합니다. 그 외에도 message_id가 될 임의의 숫자를 생성하여 메시지 ID를 얻거나 찾기가 쉽지 않습니다. - IM 그것으로 작업 중입니다. 첫째, 삭제 기능이 제대로 작동해야합니다. 쿼리가 반환하고 조건이 잘못이기 때문이다 아무것도하지 않는 경우

:

+0

출력을 알려주세요? 'Session [ 'user_id']'변수를 폼에 넣으면 안되며, 폼을 변경하고 게시물을 삭제할 수 있습니다. – jcho360

+0

@ jcho360에는 액션이 ​​설정되지 않은 점이 있습니다.이 경우 제출 버튼은 데이터를 자체/원본 페이지로 다시 제출하므로 PHP 처리기가 동일한 페이지에 있다고 가정해야합니다. – DMSJax

+0

@ jcho360 내 게시물을 편집하고 action = ""에 대한 다른 페이지를 만들었습니다. 처음에는 같은 페이지에 있었지만 작동하면 즉시 리디렉션합니다. 지금은 '디버깅 모드'입니다. Lmao. 어쨌든, 아직 작동하지 않습니다. : – user3131209

답변

0

은 내가 당신의 오류를 본 것 같아요. 당신은 phpMyAdmin을에 쿼리를 시도 할 경우 쿼리가 OK이다, 내가 생각할 수있는 유일한 방법은이 부분에 있습니다

$msgID = $POST['message_id']; 
$msgTitle = $POST['message_title']; 

그것은해야한다 :

$msgID = $_POST['message_id']; 
$msgTitle = $_POST['message_title']; 

이 메이크업 작동하지 않는 경우

print_r("DELETE FROM messages WHERE message_title = '$msgTitle' AND message_id = '$msgID'"); 

우리가 나는`의회 처리는`$에서 온 message`는 PHP에 전화를 볼 수 없습니다

+0

var_dump를 실행 해주었습니다 : Deletearray (3) {[ "message_title"] => 문자열 (0) ""[ "message_id"] => 문자열 (0) "" 당신이 말했던 것처럼 $ POST [ 'message_id']와 Title을 $ _POST [ 'message_id']로 바꿨습니다. 그런 다음 나는 ' var_dump가 메시지를 지우려고했는데 var_dump가 나에게 약간 다른 메시지를주었습니다 : array (3) {[ "message_title"] => string (0) ""[ "message_id"] => string (0) ""[ "deleteMessage "] => string (0)" "} - 이제 완벽하게 훌륭한 lmfao가 작동합니다.그런 바보 같은 작은 .. : ') 고마워 친구! – user3131209

관련 문제