: 例は次のようになります。これはつまり、モーダルを起動するには、ボタンの上のhtmlタグ・オプションベースの方法を使用してないを意味します
<!-- Button trigger modal: CAN *NOT* USE THIS TECHNIQUE!! -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
を私はあなたのモーダル内のフォームはケーキが生成した形で、submitボタンがあると仮定しますページの再描画をトリガする通常のフォーム送信は、モーダルを効果的に終了させます(IEには「モーダル削除」はありません)。
ケーキのパラダイムに可能な限り近づけておくために、私はそれを隠しフォームフィールドでサーバーに送り返します。
ような何か:あなたのCTPでケーキの側の
フォームを作成中:これは
<input type="hidden" name="subject_id" id="subject-id-field"/>
のようなフォームで何かを生成します
// HTML WRAPPER FOR MODAL
<?= $this->Form->create(yourentity); ?>
(your form stuff)
<?= $this->Form->hidden("subject_id",["id"=>"subject-id-field"]);
(end of form stuff including submit)
<?= $this->Form->end(); ?>
// HTML WRAPPER FOR MODAL
我々がする必要がありますJavascriptでこの隠しフィールドをつかんでください。#id-syntaxですべてを参照する方が好きなので、名前(フォーム固有)とID(グローバル)の両方を与えていますが、フォーム[name = subject_id]とあなたのボタンを作成し、HTMLでブラウザ側でID句
を取り除く:
<button type="button" class="btn btn-primary" onclick="launch_dialog('MATH')">Add Math</button>
ブラウザ側でJavaScriptで、ボタンがクリックされたときに呼び出される関数、これは、フォーム内の被写体IDを設定し、モーダル/フォーム起動:機能にサーバー側で
<script>
function launch_dialog(subject) {
$("#subject-id-field").val(subject); // use the id of the hidden field
$("#your-modal").modal("show"); // or whatever you do to launch the modal
}
</script>
をそのフォームターゲット:
# in your controller php file
function formAction() {
if($this->request->data["subject_id"]=="MATH") { // use the name of the hidden field
// do math record
}
// etc
}
別のメモ - グレードレコードに実際にsubjectToレコードのsubject_idフィールドがある場合、ボタンのonclick関数でlaunch_dialog関数をその定数で呼び出すと、サーバー内にIF関数は必要ありませんアクションコード。ただ、例えば、IDを生成するために元のレコードを使用してください:コントローラで
を前にレンダリング:CTPファイルで
$this->set("subjects",$this->[entity]->Subjects->find("list");
を、のようなもの:
<?php foreach($subjects as $id=>$name): ?>
<button type="button" class="btn btn-primary"
onclick="launch_dialog(<?= $id ?>)">Add <?= $name ?></button>
<?php endforeach; ?>
をあなたの質問はまだ明らかではありません私にはいくつかのスクリーンショットを投稿できますか? –