0

私はJqueryを初めて使用し、ダイアログを開く一連のリンクのダイアログボックスを開こうとしていますが、これを達成するのに苦労しています.3日間検索していますが、見つけたすべての投稿はここからのものであり、非常に技術的に見えますほとんど説明なし。

私の目的は、データベースから行を出力し、行 ID をボタンに割り当てることです。

<div id="dialog">
    <div class="content"></div>
</div>
<button id="opener" onClick="showDialog(1)">Oview details</button>

詳細を見る 詳細を見る

これからJqueryダイアログボックスにeventIDを渡せるようにしたいと思います。そのため、メイン ダイアログ ボックスのコードを関数内に含め、eventID をパラメータとして渡そうとしましたが、これはうまくいかないようでした。

function showDialog(eventId)
{   
$(document).ready()
{
    $(function () {
        $("#dialog").dialog({
            autoOpen: false,
            height: $(window).height() - 50,
            width: $(window).width() - 50,
            show: {
                effect: "blind",
                duration: 400,
            },

            hide: {
                effect: "explode",
                duration: 400
            },

            //pass the event Id to process and load the content into the div named content.
            open: function (event, ui) {
                $('#content').load("process.php?id=" eventId);
                ;

            }
            buttons: {
                            "Accept Event": function() {
                            $( this ).dialog( "close" );
                            },
                            Cancel: function() {
                            $( this ).dialog( "close" );
                            }
                           }

        });
        $("#opener").click(function () {
            //Show the div named dialog upon clicking of item id opener.
            $("#dialog").dialog('open');

        });
    });

}
}

シンプルな confirm() Javascript ボックスでこれを実現できますが、Jquery ダイアログのスタイルと効果が本当に気に入っています。

この情報を送信するページは

プロセス.php

    <?php 
print_r($_GET);
switch($_GET['id'])
{
    case 1: 
        echo "number 1 was passed to dialog"; 
        break;

    case 2: 
        echo "Number 2 was passed to dialog";
        break;

    default: 
        echo "Unknown Dialog Value!!";


}

これを達成するための最良の方法を詳細に説明してください。

この本当に長い投稿を読んでくれたすべての人に感謝します。

4

1 に答える 1

0

document.readyまず、ハンドラーを関数内に配置することはお勧めできません。$(document).ready() {$(function () {同じことなので、document.readyハンドラーの中にハンドラーがありますがdocument.ready、これは必要ありません。

次のようにコードを再配置します。

$(document).ready() {
    function showDialog(eventId) {
        // Place your function logic here
        $("#dialog").dialog({...
    }
}

また、クリックリスナーをshowDialog関数の外側、ただし。の内側に配置する必要がありdocument.readyます。現在のように、ハンドラーは実行されたときに1回だけ適用されるため、ダイアログを開くには2回showDialogクリックする必要があります。#opener

于 2013-03-10T11:28:50.147 に答える