1

こんにちは私は別の質問があります。管理システムを作成しています。ユーザー登録と削除機能を追加しました。今、私は良いデザインを作る必要があります。

そこで、MySQL DBから、ID、ユーザー名、最終ログイン、および削除の情報を含むテーブルを作成しました。

これは、テーブルを印刷するphpコードの抽出です。

echo "<td class=\"center\">
            <a href=\"#\" class=\"delete_user\">
                <img src=\"images/delete.png\" />
                <script type=\"text/javascript\">
                    var id = \"index.php?section=user_delete&id=".$getUserID[$i]."\";
                </script>
            </a>
        </td>

ご覧のとおり、削除プロセスにIDを使用しています。

ここで、jQueryモーダルポップアップを使用して、この人を本当に削除したいことを確認します。

これは私のjsコードです:

$(".delete_user").click(function() {
    $( "#dialog_delete_user" ).dialog( "open" );
});

$( '#dialog_delete_user' ).dialog({
    autoOpen: false,
    resizable: false,
    height: 170,
    modal: true,
    buttons: {
        'ok': function() {
            alert(id);
            //document.location = id; 
            $( this ).dialog( 'close' );
        }
    }
});

ご覧のとおり、個人を識別し、適切な個人が削除されることを確認するために、変数IDを追加する必要があります。

リンクをクリックした場合にのみJavaScriptが実行されると思いました。これは正しくないようです。

では、どうすれば各人を定義/識別できますか?

表示されたテーブルは役に立たないので、各削除ボタンをその所有者で識別する方法がありません。したがって、テーブルを作成する場所でそれを定義する必要があります。

このjQueryモーダルフォームがなければ、簡単です。しかし、それを機能させる方法がなければなりません。何か案が?

4

1 に答える 1

1

個人的には、ダイアログを開くリンクに次のような属性を設定します

<a href="bla" data-user-id="5">Click me!</a>

次に、ダイアログボックスを開くリンクのonclickイベントで、ダイアログの非表示のユーザーフィールドを$(this).data( "user-id");の値に設定します。フォームを作成しておらず、すぐにajaxリクエストを実行する場合は、さらに簡単になります。

var currentUserId;
$(".delete_user").click(function() {
    currentUserId = $(this).data("user-id");
    $( "#dialog_delete_user" ).dialog( "open" );
});

$( '#dialog_delete_user' ).dialog({
    autoOpen: false,
    resizable: false,
    height: 170,
    modal: true,
    buttons: {
        'ok': function() {
            //document.location = "/somephpfile.php?user_id=" + currentUserId; 
            $( this ).dialog( 'close' );

            // ajax version
            $.ajax({
                url : "/somephpfile.php?user_id=" + currentUserId,
                // Other ajax related code.
            });
        }
    }
});
于 2012-05-15T20:39:04.330 に答える