国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - php刪除數(shù)據(jù)一直不成功,求大俠幫忙,跪求了
某草草
某草草 2017-05-16 13:01:04
0
8
868

點(diǎn)擊刪除按鈕后,被選中的數(shù)據(jù)從頁(yè)面中消失,貌似被刪除了,但是在刷新后,會(huì)再次顯示,同樣刷新數(shù)據(jù)庫(kù)表的數(shù)據(jù)后,數(shù)據(jù)沒(méi)有被刪除,煩大神看一下我的代碼是哪里出問(wèn)題了?

由原來(lái)的路由 action為url中的參數(shù),這是 data.php中的 line 6 $action報(bào)錯(cuò),現(xiàn)在已經(jīng)修改了這個(gè)報(bào)錯(cuò)的信息,但是仍然無(wú)法從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù),請(qǐng)問(wèn)是怎么回事呢?我應(yīng)該怎么調(diào)試php中的代碼?

修改后:
php:

//做個(gè)路由 action為url中的參數(shù),這是 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;
    }

//刪除方法,我怎么在瀏覽器中調(diào)試php?怎么可以看到這個(gè)方法有沒(méi)有執(zhí)行?
    function del_row(){
        //測(cè)試
        /*echo "ok!";*/
        
        //接收傳回的參數(shù)
        $rowId = $_GET['rowId'];
        $sql = "delete from t_users where user_id='$rowId'";
        
        if(query_sql($sql)){
            echo "ok!";
        }else{
            echo "刪除失??!";
        }
    }

修改后:
前臺(tái)頁(yè)面JS:

var $table = $('#table'),
    $remove = $('#remove');

$(function() {
    searchData();
    delData();
});

function delData() {
                $remove.on('click', function() {
                    if(confirm("是否繼續(xù)刪除")) {
                        var rows = $.map($table.bootstrapTable('getSelections'), function(row) {
                            //返回選中的行的索引號(hào)
                            return row.user_id;
                        });
                    }
                    
                    $.map($table.bootstrapTable('getSelections'),function(row){
                        var del_url = "./php/data.php";
                        //根據(jù)userId刪除數(shù)據(jù),因?yàn)檫@個(gè)id就是 傳給服務(wù)器的參數(shù)
                        var rowId = row.user_id;
                        
                        //根據(jù)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查看,由原來(lái)報(bào)錯(cuò)信息:action in data.php on line 6

現(xiàn)在是什么也沒(méi)有,為空

在Network中Response查看,由原來(lái)報(bào)錯(cuò)信息:action in data.php on line 6

現(xiàn)在也是什么也沒(méi)有,為空

使用 Rest Client 測(cè)試,結(jié)果為200,但是返回?cái)?shù)據(jù)仍為 刪除失??!真是要了老命了,搞不清楚到底出在哪里了,怎么老是刪除不了,從返回信息來(lái)看,php中del_row()這個(gè)方法 可能就沒(méi)有執(zhí)行是嗎?

我該怎么做呢?

在數(shù)據(jù)庫(kù)中執(zhí)行SQL語(yǔ)句:delete from t_users where user_id='1',提示是刪除成功了的,但是在頁(yè)面上卻執(zhí)行不成功,是不是沒(méi)有接收到傳回來(lái)的參數(shù)呢?

某草草
某草草

Antworte allen(8)
phpcn_u1582

總結(jié)上面的錯(cuò)誤有4個(gè):

  1. delete 返回的參數(shù)只能用 $_GET 獲取;

  2. delete 返回的參數(shù)要放在URL中,不能放在body中;body中的參數(shù)是用來(lái)查詢(xún)的;

  3. SQL語(yǔ)句一定要熟練,一步錯(cuò),步步錯(cuò);

  4. 要在數(shù)據(jù)庫(kù)中執(zhí)行SQL語(yǔ)句檢查語(yǔ)句是否執(zhí)行正確,要使用 Rest Client 測(cè)試URL請(qǐng)求是否正確;

下面是我的正確的代碼,雖然寫(xiě)的糟糕,但好歹能執(zhí)行不報(bào)錯(cuò)了。
php

<?php
    //測(cè)試php是否可以拿到數(shù)據(jù)庫(kù)中的數(shù)據(jù)
    /*echo "44444";*/
    
    //做個(gè)路由 action為url中的參數(shù)
    $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;
    }

//刪除方法
    function del_row(){
        //測(cè)試
        /*echo "ok!";*/
        
        //接收傳回的參數(shù)
        $rowId = $_GET['rowId'];
        $sql = "delete from t_users where user_id='$rowId'";
        
        if(query_sql($sql)){
            echo "ok!";
        }else{
            echo "刪除失?。?;
        }
    }
?>

前臺(tái)JS頁(yè)面:

var $table = $('#table'),
    $remove = $('#remove');

    $(function() {
        searchData();
        delData();
    });

function delData() {
                $remove.on('click', function() {
                    if(confirm("是否繼續(xù)刪除")) {
                        var rows = $.map($table.bootstrapTable('getSelections'), function(row) {
                            //返回選中的行的索引號(hào)
                            return row.user_id;
                        });
                    }
                    
                    $.map($table.bootstrapTable('getSelections'),function(row){
                        var del_url = "./php/data.php";
                        //根據(jù)userId刪除數(shù)據(jù),因?yàn)檫@個(gè)id就是 傳給服務(wù)器的參數(shù)
                        var rowId = row.user_id;
                        
                        $.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('刪除失??!');
                            }
                        });
                    });
                })
            }

公共方法,登錄數(shù)據(jù)庫(kù):

function query_sql(){
        $mysqli = new mysqli("127.0.0.1", "root", "root", "crud");
        $sqls = func_get_args();
        foreach($sqls as $s){
            $query = $mysqli->query($s);
        }
        $mysqli->close();
        return $query;
    }
洪濤


你是用delete方式提交的請(qǐng)求,所以后端用$_GET和$_POST是接收不到參數(shù)的。

delete參數(shù)應(yīng)該放在url里:

if($_SERVER['REQUEST_METHOD'] == 'DELETE') {
    //參數(shù)包含在請(qǐng)求url中
    $uri = $_SERVER['REQUEST_URI'];
}
迷茫

應(yīng)該是$userId = $_POST['rowId'];

"DELETE FROM `t_user` where `user_id` = '.$userId'" 

多了個(gè)點(diǎn)吧

大家講道理

打印一下$_GET ,應(yīng)該是參數(shù)沒(méi)傳遞過(guò)來(lái)

過(guò)去多啦不再A夢(mèng)

你把action放在body里了,自然$_GET就取不到action了,要用$_POST。
看你都用了DELETE方式提交了,不如改成restful吧…

Ty80
$sql = "DELETE FROM `t_user` where `user_id` = '".$userId."';";

sql 語(yǔ)句是不是有問(wèn)題 。程序運(yùn)行的時(shí)候打印出來(lái),復(fù)制到數(shù)據(jù)庫(kù)里運(yùn)行測(cè)試一次吧。

習(xí)慣沉默

首先打印一下$_GET 看看有什么?

你的這個(gè)地方很奇怪,dataType 改為json試試

報(bào)錯(cuò)的原因是因?yàn)?沒(méi)有發(fā)現(xiàn)action這個(gè)參數(shù)

左手右手慢動(dòng)作

query_sql呢?用的什么?

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage