-2

データベース mshop2 に userdb という名前のテーブルがあります。次の列があります。

  • ID
  • 名前
  • ユーザー名
  • パスワード
  • Eメール

すべての関数が格納されている js ファイルの名前は mshop2.script です。ここには、deleteUser 関数も格納されており、deleteUser.php という名前のファイルにジャンプします。

コードを実行する php ファイルは admin.php で、次のように記述されています。

<font color="white">Deletion - ID</font>
<input class="test1" type="text" id="txUserid" value="">
<input class="test2" name="Submit" type="submit" value="" id="submit" 
       onClick='deleteUser();txUserid.value="";'/>

「入力クラス」の単語は、CSSファイルに従って画像フォルダーと一致し、クリックしたときにコードを実行する画像を表示するだけなので、気にしないでください。.php ファイルの先頭に次の行を含めました。

<script src='jquery.js'></script>
<script src='mshop2.script.js'></script>

mshop2.script.js ファイルに次のように記述しました。

function deleteUser(){
    var userid = $('#txUserid').val();
    var finalData = {
        uid: userid
    };

    $.post('deleteUser.php', finalData, function(resp){
        if(resp == 'success'){
            alert('User successfully deleted.');
            getUserList();
        }
    }); 
}

これは私の deleteUser.php ファイルの内容です:

<?php
    include 'config.php';

    $id = mysql_real_escape_string($_POST["userid"]);
    $q = "DELETE FROM userdb WHERE ID = '$uid'";

    if(!mysql_query($q, $con)){
        die('Error: ' . mysql_error());
        echo mysql_error();
    }else{
        echo 'success';
    }

    mysql_close($con);
?>

何も起こらず、テキスト ボックスに「1」または 1 から 5 までの任意の数字を入力すると、入力したのと同じ ID を持つデータベース内のテーブルの一致する行が削除されません。

コードの何が問題になっていますか?

4

3 に答える 3

1

jq で uid を投稿しています。

投稿先を変更

$uid = mysql_real_escape_string($_POST["uid"]);
于 2013-06-21T09:06:29.020 に答える
1

これを変える :-

$q = "DELETE FROM userdb WHERE ID = '$uid'";

$q = "DELETE FROM userdb WHERE ID = '$id'";

変数 $id の値をキャッチし、SQL ステートメントで $uid を使用しているため、機能していません。

于 2013-06-21T08:53:00.470 に答える
0

ごちゃごちゃした変数があり、それがあなたを混乱させました。

あなたのスクリプトコードではuid、値を渡していてuserid 、間違った変数にアクセスしていますdeleteUser.php

それ以外のmysql_real_escape_string($_POST['userid']);

への変更mysql_real_escape_string($_POST['uid']);

そして、クエリで、変数$uidを次のように変更するだけです$id

スクリプトに渡したものと同様の変数を使用するだけで、よくある間違いを見つけるのが難しくなりません。

編集:::これを試してください HTMLコードのonclickイベントを削除してください

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

 <script>
     $(document).ready(function() { 
          $(".test2").click(function() { 
                 var id = $("#tsUserid").val();
                 $.post("deletUser.php", { id: id }, function(data) { 
                     alert(data);
                 });
          });
     });
 </script>

あなたのphpはあなたのdeleteUser.phpになり、ただ

変化するmysql_real_escape_string($_POST['userid']);

mysql_real_escape_string($_POST['id']);

そしてあなたのクエリ $q = "DELETE FROM userdb WHERE ID = '$id'";

それが役に立てば幸い。

于 2013-06-21T09:05:10.017 に答える