삭제 버튼을 클릭하시면 선택된 데이터가 페이지에서 사라지게 됩니다. 삭제된 것으로 보이지만, 데이터베이스 테이블의 데이터를 새로고침한 후에도 데이터가 삭제되지 않은 상태입니다. 내 데이터를 살펴보세요. 코드에 무슨 문제가 있나요?
원래 라우팅 작업은 URL의 매개변수입니다. 이것은 data.php의 6행 $action 오류입니다. 이제 오류 메시지가 수정되었지만 여전히 데이터베이스에서 데이터를 삭제할 수 없습니다. 모직물? PHP에서 코드를 어떻게 디버깅해야 합니까?
수정 후:
php:
//경로 만들기 Action은 url의 매개변수입니다. 이것은 data.php의 6번째 줄입니다.
$action = $_GET['액션'];
스위치($액션) {
'init_data_list'의 경우:
init_data_list();
부서지다;
사례 'add_row':
add_row();
부서지다;
사례 'del_row':
del_row();
부서지다;
사례 'edit_row':
edit_row();
부서지다;
}
//삭제 메소드, 브라우저에서 PHP를 어떻게 디버깅합니까? 이 메소드가 실행되었는지 어떻게 확인할 수 있나요?
함수 del_row(){
//시험
/*에코 "알았어!";*/
//반환된 매개변수를 받습니다.
$rowId = $_GET['rowId'];
$sql = "user_id='$rowId'인 t_users에서 삭제";
if(query_sql($sql)){
에코 "알았어!";
}또 다른{
echo "삭제 실패!";
}
}
수정 후:
첫 페이지 JS:
var $table = $('#table'),
$제거 = $('#제거');
$(함수() {
검색데이터();
델데이터();
});
함수 델데이터() {
$remove.on('클릭', function() {
if(confirm("계속 삭제하시겠습니까?")) {
var 행 = $.map($table.bootstrapTable('getSelections'), function(row) {
//선택한 행의 인덱스 번호를 반환합니다.
row.user_id를 반환합니다.
});
}
$.map($table.bootstrapTable('getSelections'),function(row){
var del_url = "./php/data.php";
//userId를 기준으로 데이터를 삭제합니다. 이 ID는 서버에 전달되는 매개변수이기 때문입니다.
var rowId = row.user_id;
//PHP 요구 사항에 따라 삭제 방법을 활성화하려면 del_row를 다시 전달해야 합니다.
/*var dataParam = {
작업: "del_row",
rowId:rowId
};*/
$.아약스({
유형:"삭제",
url:del_url + "?action=del_row&rowId=" + rowId,
데이터 유형:"html",
콘텐츠 유형: 'application/json;charset=utf-8',
성공: 함수(데이터) {
$table.bootstrap테이블('제거',{
필드: 'user_id',
값: 행
});
$remove.prop('비활성화', true);
},
오류:함수(데이터){
Alert('삭제 실패!');
}
});
});
})
}
수정 후:
네트워크 헤더에서 보면 200으로 표시됩니다.
요청 URL:http://localhost/muke/php/data.php?action=del_row&rowId=1
요청 방법:DELETE
상태 코드:200 OK
원격 주소:[::1]:80
쿼리 문자열 매개변수
작업:del_row
rowId:1
네트워크에서 미리보기, 원래 오류 메시지는 다음과 같습니다: 6행의 data.php에 있는 작업
지금은 아무것도 없고 비어있습니다
네트워크에서 응답 보기, 원래 오류 메시지는 다음과 같습니다: 6행의 data.php에 있는 작업
지금은 아무것도 없고 비어있습니다
Rest Client를 사용하여 테스트한 결과는 200인데 반환된 데이터는 여전히 삭제 실패입니다! 정말 죽여줍니다. 무엇이 문제인지, 왜 삭제할 수 없는지 알 수 없습니다. 반환 정보로 판단하면 PHP의 del_row() 메서드가 실행되지 않을 수도 있습니다.
< br> 피>
어떻게 해야 하나요?
데이터베이스에서 SQL 문을 실행합니다. user_id='1'인 t_users에서 삭제에 성공했다는 메시지가 표시되지만, 전달된 매개변수가 수신되지 않았기 때문에 페이지에서 실행이 실패했습니다.
< /p>
요약하자면 위에 4개의 오류가 있습니다:
삭제에 의해 반환된 매개변수는 $_GET을 통해서만 얻을 수 있습니다.
SQL 문은 능숙해야 하며 한 단계가 잘못되면 잘못된 단계가 발생합니다.
데이터베이스에서 SQL 문을 실행하여 해당 문이 올바르게 실행되었는지 확인하려면 Rest Client를 사용하여 URL 요청이 올바른지 테스트하세요.
다음은 제가 작성한 올바른 코드입니다. 비록 잘못 작성되었지만 오류 없이 실행될 수 있습니다.
으아악
으아악프런트엔드 JS 페이지: 으아악 공개 방법, 데이터베이스에 로그인:
삭제 메소드를 사용하여 요청을 제출했으므로 백엔드가 $_GET 및 $_POST를 사용하여 매개변수를 수신할 수 없습니다.
삭제 매개변수는 URL에 배치되어야 합니다.
으아악그게
으아악$userId = $_POST['rowId'];
맞아야지조금만 더
$_GET을 인쇄하세요. 매개변수가 전달되지 않았어야 합니다
당신은
action
放在body里了,自然$_GET
就取不到action
了,要用$_POST
。看你都用了
DELETE
方式提交了,不如改成restful
...으아악
SQL 문에 문제가 있나요? 프로그램 실행 시 출력하여 데이터베이스에 복사한 후 테스트를 한 번 실행해 보세요.
먼저 $_GET를 인쇄하여 무엇이 있는지 확인하세요.
당신의 이곳은 매우 이상합니다. dataType을 json으로 변경해 보세요
오류가 발생하는 이유는 작업 매개변수를 찾을 수 없기 때문입니다
query_sql은 어떻습니까? 무엇을 사용해야 합니까?