1

したがって、いくつかのファイルがあります。

-- model      -- step1.php
              -- step2.php
-- view       -- main.php
              -- step1.php
              -- step2.php
-- controller -- step1.php
              -- step2.php

基本的に私がやろうとしているのは、main.php から step1 ビューを呼び出すことです。

$(document).ready(function(){
    $("#MyForm").validate({
        submitHandler: function(form) {
            $.post('../controller/step1.php', $("#MyForm").serialize(), function(data) {
                $('#step1_controller').html(data);
            });
        }
    });
});

これは機能しますが、main.php でフォームを送信すると、step1 コントローラーが実行され、step2 ビューが読み込まれます。

問題は、この ajax リクエストを介して step2 ビューをロードすると、step2 ビューが step2 コントローラーをロードできなくなることです。ただし、ブラウザーで step2 ビューを開くと、すべて正常に動作し、step2 コントローラーが読み込まれます。

main.php -> step2.php を読み込みます -> step2 コントローラを読み込みます

  • main.php は正常に step2 ビューをロードします
  • step2 ビューは正常に step2 コントローラーをロードします

  • しかし、main.php は step2 コントローラーをロードできません

これは少し混乱することはわかっていますが、誰かが私を助けてくれればとても感謝しています.

とにかく、これらの動的な ajax をロードしたインストール手順を使用するこれらすべてのページはどのように機能するのでしょうか?

ステップ 1 でフォームに記入し、[送信] をクリックすると、ステップ 2 が表示され、フォームに記入し、ステップ 3 が表示されます。最善の方法は何ですか?

step2 ビュー:

<script>
$(document).ready(function(){
    $("#Foo").validate({
        submitHandler: function(form) {
                $.post('../controller/step2.php', $("#Foo").serialize(), function(data) {
                $('#results_step2').html(data);
            });
        }
    });
});
</script>


<h1 class="header_step2">Lorem</h1>

<p />

<form name="Foo" id="Foo" action="" method="POST" enctype="multipart/form-data">
<select size="1" name="Bar">
  <option value="Foo">Bar</option>
  <option value="Foo">Bar</option>
  <option value="Foo">Bar</option>
  <option value="Foo">Bar</option>
  <option value="Foo">Bar</option>
</select>

<button type="submit">
<div id="results_step2"> Save </div>
</button>
</form>
4

2 に答える 2