削除ボタンをクリックすると、選択したデータがページから消えますが、データベーステーブルのデータを更新すると再び表示されます。私のデータを見てください。コードのどこが間違っていますか?
元のルーティング アクションは URL のパラメータです。これは data.php の 6 行目の $action エラーです。エラー メッセージは変更されましたが、依然としてデータベースからデータを削除できません。毛織物? PHPでコードをデバッグするにはどうすればよいですか?
変更後:
php:
//ルートを作成します。アクションは URL のパラメーターです。これは data.php の 6 行目の $action です。
$アクション = $_GET['アクション'];
スイッチ($アクション) {
ケース「init_data_list」:
init_data_list();
壊す;
ケース 'add_row':
add_row();
壊す;
ケース「del_row」:
del_row();
壊す;
ケース「編集行」:
edit_row();
壊す;
}
// メソッドを削除します。ブラウザで PHP をデバッグするにはどうすればよいですか?このメソッドが実行されたかどうかを確認するにはどうすればよいですか?
関数 del_row(){
//テスト
/*「ok!」をエコーします;*/
// 返されたパラメータを受け取る
$rowId = $_GET['rowId'];
$sql = "user_id='$rowId' の t_users から削除";
if(クエリ_sql($sql)){
「わかりました!」をエコーします。
}それ以外{
echo "削除に失敗しました!";
}
}
変更後:
フロントページ JS:
var $table = $('#table'),
$remove = $('#remove');
$(関数() {
検索データ();
delData();
});
関数 delData() {
$remove.on('クリック', function() {
if(confirm("削除を続けますか")) {
var rows = $.map($table.bootstrapTable('getSelections'), function(row) {
//選択した行のインデックス番号を返す
row.user_id を返します。
});
}
$.map($table.bootstrapTable('getSelections'),function(row){
var del_url = "./php/data.php";
//この ID はサーバーに渡されるパラメータであるため、userId に基づいてデータを削除します
var rowId = row.user_id;
//PHP の要件に従って、削除メソッドをアクティブにするために del_row を返す必要があります。
/*var dataParam = {
アクション: "del_row"、
行ID:行ID
};*/
$.ajax({
タイプ:「削除」、
url:del_url + "?action=del_row&rowId=" + rowId、
データタイプ: "html",
contentType: 'application/json;charset=utf-8',
成功: 関数(データ) {
$table.bootstrapTable('削除',{
フィールド: '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
ネットワークでのプレビュー、元のエラー メッセージは次のとおりです: data.php の 6 行目
今は何もなく、空です
ネットワークでの応答の表示、元のエラー メッセージは次のとおりです: data.php の 6 行目
今は何もなく、空です
Rest Client を使用してテストすると、結果は 200 ですが、返されたデータは依然として削除に失敗しました。何が問題で、なぜ削除できないのかがわかりません。戻り情報から判断すると、PHP の del_row() メソッドが実行されない可能性があります。
< br>
どうすればいいですか?
データベースで SQL ステートメントを実行します: delete from t_users where user_id='1'。削除が成功したというプロンプトが表示されますが、返されたパラメーターが受信されなかったことが原因でしょうか。
< /p>
要約すると、上記の 4 つのエラーがあります:
delete によって返されるパラメータは、$_GET を使用してのみ取得できます。
SQL ステートメントは熟練している必要があり、一歩間違うと間違ったステップにつながります。
以下は私の正しいコードです。書き方は悪いですが、エラーなく実行できます。
リーリー
フロントエンド JS ページ:リーリー
削除メソッドを使用してリクエストを送信したため、バックエンドは $_GET と $_POST を使用してパラメーターを受け取ることができません。
削除パラメータは URL に配置する必要があります:
リーリーそれは
リーリー$userId = $_POST['rowId'];
正しいはずですもう少し
$_GET を出力します。パラメータが渡されていないはずです
あなたは
を受け取りますaction
放在body里了,自然$_GET
就取不到action
了,要用$_POST
。看你都用了
DELETE
方式提交了,不如改成restful
...リーリー
SQL ステートメントに問題がありますか?プログラムの実行中にそれを印刷し、データベースにコピーしてテストを 1 回実行します。
まず $_GET を印刷して、そこに何があるか確認してください。
あなたのここは非常に奇妙です。dataType を json に変更してみてください
エラーの理由は、アクションパラメータが見つからないためです
query_sql についてはどうですか?何を使うか?