点击删除按钮后,被选中的数据从页面中消失,貌似被删除了,但是在刷新后,会再次显示,同样刷新数据库表的数据后,数据没有被删除,烦大神看一下我的代码是哪里出问题了?
由原来的路由 action为url中的参数,这是 data.php中的 line 6 $action报错,现在已经修改了这个报错的信息,但是仍然无法从数据库中删除数据,请问是怎么回事呢?我应该怎么调试php中的代码?
修改后:
php:
//做个路由 action为url中的参数,这是 data.php中的 line 6 $action
$action = $_GET['action'];
switch($action) {
case 'init_data_list':
init_data_list();
break;
case 'add_row':
add_row();
break;
case 'del_row':
del_row();
break;
case 'edit_row':
edit_row();
break;
}
//删除方法,我怎么在浏览器中调试php?怎么可以看到这个方法有没有执行?
function del_row(){
//测试
/*echo "ok!";*/
//接收传回的参数
$rowId = $_GET['rowId'];
$sql = "delete from t_users where user_id='$rowId'";
if(query_sql($sql)){
echo "ok!";
}else{
echo "删除失败!";
}
}
修改后:
前台页面JS:
var $table = $('#table'),
$remove = $('#remove');
$(function() {
searchData();
delData();
});
function delData() {
$remove.on('click', function() {
if(confirm("是否继续删除")) {
var rows = $.map($table.bootstrapTable('getSelections'), function(row) {
//返回选中的行的索引号
return 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 = {
action: "del_row",
rowId:rowId
};*/
$.ajax({
type:"delete",
url:del_url + "?action=del_row&rowId=" + rowId,
dataType:"html",
contentType: 'application/json;charset=utf-8',
success: function(data) {
$table.bootstrapTable('remove',{
field: 'user_id',
values: rows
});
$remove.prop('disabled', true);
},
error:function(data){
alert('删除失败!');
}
});
});
})
}
修改后:
在Network中Headers查看,显示为:200
Request URL:http://localhost/muke/php/data.php?action=del_row&rowId=1
Request Method:DELETE
Status Code:200 OK
Remote Address:[::1]:80
Query String Parameters
action:del_row
rowId:1
在Network中Preview查看,由原来报错信息:action in data.php on line 6
现在是什么也没有,为空
在Network中Response查看,由原来报错信息:action in data.php on line 6
现在也是什么也没有,为空
使用 Rest Client 测试,结果为200,但是返回数据仍为 删除失败!真是要了老命了,搞不清楚到底出在哪里了,怎么老是删除不了,从返回信息来看,php中del_row()这个方法 可能就没有执行是吗?
我该怎么做呢?
在数据库中执行SQL语句:delete from t_users where user_id='1',提示是删除成功了的,但是在页面上却执行不成功,是不是没有接收到传回来的参数呢?
Pour résumer, il y a 4 erreurs ci-dessus :
Les paramètres renvoyés par delete ne peuvent être obtenus qu'en utilisant $_GET ;
;
;
php
Page JS frontale :
Méthode publique, connectez-vous à la base de données :
Vous avez soumis la demande en utilisant la méthode delete, le backend ne peut donc pas recevoir de paramètres à l'aide de $_GET et $_POST.
Le paramètre delete doit être placé dans l'url :
Ça devrait être
$userId = $_POST['rowId'];
vraiUn peu plus
Imprimez $_GET, il faudrait que les paramètres n'aient pas été passés
Tu prends
action
放在body里了,自然$_GET
就取不到action
了,要用$_POST
。看你都用了
DELETE
方式提交了,不如改成restful
...Y a-t-il un problème avec l'instruction sql ? Imprimez-le lorsque le programme est en cours d'exécution, copiez-le dans la base de données et exécutez le test une fois.
Imprimez d'abord $_GET pour voir ce qu'il y a ?
Cet endroit est très étrange, essayez de changer le dataType en json
La raison de l'erreur est que le paramètre d'action est introuvable
Et query_sql ? Quoi utiliser ?