0

あまりよく質問できなかったと思いますので、詳しく説明させていただきます。

私は姪が取り組んでいるプロジェクトのための簡単なウェブサイトを構築しています。彼女はクラス卒業のためのチケット注文システムを実装したいと考えています(これはすべてプロジェクトのためだけであり、実際には本番環境では何にも使用されません)。彼女は、利用可能な座席の「マップ」と、販売された座席と空いている座席を区別する方法を望んでいました。

これを実装するための私のビジョンは、セクションごとに1つずつ、合計3つのテーブルを作成することです。私はPHPを使用してセクションを作成していますが、現時点では、座席が空いているかどうかを示す画像が含まれており、URLと同じページを指すアンカータグでラップされています。

<a href='index.php?section=$section&row=$i&seat=$j' class='order'><img src='open.png'></a>

ですから、私の壮大な計画は、特定の座席の画像をクリックすると、2つのことのいずれかを実行するモーダルダイアログがポップアップ表示されるようにすることでした。

すでに座席が空いている場合は、購入者の情報が表示されます。席が空いていない場合は、ユーザーが情報を入力して送信できるフォームが含まれます。このフォームは、このデータを格納するMySQLデータベーステーブルに書き込みます。

index.php?section =などをアンカーに追加する前に、モーダルフォーム用のjQuery UIダイアログ(http://jqueryui.com/dialog/#modal-form )を使用してモーダルダイアログを実行していました。その部分を追加すると、ダイアログが点滅しますが、ページが更新され、ダイアログが消えます。

私の質問は、クリックされたときにページが更新されないように、セクション/行/シートの情報をアンカーに保存する方法はありますか?アンカーがクリックされたときに処理するために、index.phpのHTMLタグの前にコードを追加できますか?私が最後にPHPを使用したのは数年前で、私は非常に錆びていて、この問題にどのように取り組むかがわかりません。

4

2 に答える 2

1

クリックイベントをキャンセルする必要があります。つまり、ブラウザーに Javascript の作業 (ダイアログを開くなど) を実行するように指示し、クリックをキャンセルして、新しいページが読み込まれないようにします。最も簡単には、onclick イベントで false を返すだけです。

<a href="index.php?....." class="order" onclick="return false;"><img src="..."></a>

さらに良いことに、onclick イベントからダイアログを呼び出すこともできます。

<a href="index.php?....." class="order" onclick="open_dialog(<?= $i; ?>, <?= $j; ?>); return false;"><img src="..."></a>
于 2013-01-31T01:22:14.787 に答える
-1

より良い実装は、各座席を「ボタン」にし (それに応じて UI を変更できます)、AJAX を使用してボタンのクリックを「送信」することです。

于 2013-01-31T01:16:50.343 に答える