2016-06-01 6 views
0

私はSymfonyでフォームを含むビューを持っています。フォームを送信する前に、jQueryに確認ボックスがあります。フォームを送信した後、コントローラー機能でデータベースのフォームの値を確認した後、アクションを実行する前に別の確認ボックスを表示した後、フォームの値に依存します。Symfony 2のダブル確認ボックス

<div> 
    <form id="regexpForm" action="" method="post"> 
     <input type="hidden" name="action" value="test" /> 
     <ul> 
      <li class="clear mandatory"> 
       <input type="submit" class="button" value="submit" /> 
      </li> 
     </ul> 
    </form> 
    <div id="dialog" title="Confirmation"></div> 
</div> 
<script> 
    jQuery(document).ready(function($) { 
     var userConfirmed = false; 
     $("#regexpForm").validate({ 
      submitHandler: function(form) { 
       $("#dialog").dialog({ 
        open: function() { 
         var markup = 'Confirmation'; 
         $(this).html(markup); 
        }, 
        buttons: { 
         "Ok": function() { 
          form.submit(); 
          $(this).dialog("close"); 
         }, 
         "Cancel": function() { 
          $(this).dialog("close"); 
         } 
        } 
       }); 
      } 
     }); 
    }); 
</script> 

そして、私のコントローラでの機能::

public function testAction() 
{ 
    //Verification of $this->get('request')->get('action') in DB 
    if($this->get('request')->get('action')) 
    { 
     // Display a confirmation box and if ok execute action 1 
    } 
    else 
    { 
     // Display a confirmation box and if ok execute action 2 
    } 
} 

はにありがとう

私の質問はこれが私の見解である私のexempleに

を第二確認ボックスを表示する方法であります事前に

+0

なぜユーザーが2回確認する必要があるのか​​分かりません。特定のものに応じてフォームを変更する必要がある場合は、[ここ](http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html) – rck6982

+0

が表示されます。最初の確認は、 (正規表現を使用して)入力し、2番目はデータベースにチェックインした後 –

+0

コメント:あなたの背中にSymfonyの力があれば、手動でフォームを書くのではなくフォームコンポーネントを使うべきです –

答えて

0

あなたはにajaxコールを発信する必要があります。期待された値がOKであれば、そのようなフラグを返します。次に、あなたはこの旗をあなたのJavaScriptで捕まえます。フラグがtrueの場合、別の確認ボックスが表示されます。 次に、ユーザーがその2番目の確認ボックスを検証すると、controlleractionに何かをもう一度呼び出すと、アクション1または2が実行されます。 要点は2段階のプロセスです。

関連する問題