2017-08-16 6 views
0

私は別の投稿を赤字にしましたが、特に私の問題がどこにあるかを認識できませんでした。私は提出時に機能を複数回呼び出さないと思う。これは私がajaxを介してデータを検証するコントローラアクションに送信する連絡先フォームで、OKの場合はデータベーステーブルに保存されます。あなたは私の間違いがどこにあるのか教えていただけますか?ありがとうございました! フォーム:フォームのサブミット時に最大コールスタックサイズを超過しました

<form method="post" action="" onsubmit="contactProccess()"> 
         <div class="panel panel-default"> 
          <input id="form-token" type="hidden" name="<?=Yii::$app->request->csrfParam?>" 
          value="<?=Yii::$app->request->csrfToken?>" /> 

          <div class="col-sm-12 contact-container"> 

           <div class="panel-heading"> 
            <h1 class="text-center contact-page-title <?=($message != "" ? " mt0 " : "")?>"><?= $page->title; ?></h1> 
           </div> 

           <div class="panel-body"> 
            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="names" id="fancy-text" /> 
              <label><?= Yii::t('app', 'app.Names') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="email" id="fancy-text"/> 
              <label>Email</label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="phone" id="fancy-text"/> 
              <label><?= Yii::t('app', 'app.Phone') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="title" id="fancy-text"/> 
              <label><?= Yii::t('app', 'app.Title') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h190"> 
             <div class="text-input"> 
              <textarea class="padding-message" name="message" id="fancy-text"></textarea> 
              <label><?= Yii::t('app', 'app.Message') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h100"> 
             <?= '<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA code" height="60" width="120">' ?> 
             <label><?= Yii::t('app', 'app.Security code') ?></label> 
             <input class="padding-message" name="captcha" id="fancy-text" /> 
             <div class="help-block"></div> 
            </div><!-- End .form-group --> 

            <div class="xss-margin"></div><!-- space --> 

            <div class="contact-form submit-button"> 
             <button type="submit"><?= Yii::t('app','app.Send') ?></button> 
            </div> 
           </div> 
          </div> 
         </div><!-- panel-end --> 
        </form> 

アヤックス:

function contactProccess() { 
    var name = $('input[name="names"]'); 
    var email = $('input[name="email"]'); 
    var phone = $('input[name="phone"]'); 
    var title = $('input[name="title"]'); 
    var captcha = $('input[name="captcha"]'); 
    var message = $('textarea[name="message"]'); 
    $.ajax({ 
     method: 'post', 
     url: '/admin/site/contactprocess', 
     data: { 
      name: name, 
      email: email, 
      phone: phone, 
      title: title, 
      message: message 
     }, 
     success: function (data) { 
      return false; 
     } 
    }); 
    return false; 
} 

アクションは今ちょうどテストフォームです:

public function actionContactprocess(){ 
     var_dump($_POST);die; 
    } 

答えて

0

あなたはなく、AJAX作るためにあなたの送信ボタンをクリックしてイベントに適用されるべきですobsubmitを使用します。ボタンのIDを与えると同じのためにそれに

<form> 
         <div class="panel panel-default"> 
          <input id="form-token" type="hidden" name="<?=Yii::$app->request->csrfParam?>" 
          value="<?=Yii::$app->request->csrfToken?>" /> 

          <div class="col-sm-12 contact-container"> 

           <div class="panel-heading"> 
            <h1 class="text-center contact-page-title <?=($message != "" ? " mt0 " : "")?>"><?= $page->title; ?></h1> 
           </div> 

           <div class="panel-body"> 
            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="names" id="fancy-text" /> 
              <label><?= Yii::t('app', 'app.Names') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="email" id="fancy-text"/> 
              <label>Email</label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="phone" id="fancy-text"/> 
              <label><?= Yii::t('app', 'app.Phone') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h60"> 
             <div class="text-input"> 
              <input type="text" name="title" id="fancy-text"/> 
              <label><?= Yii::t('app', 'app.Title') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h190"> 
             <div class="text-input"> 
              <textarea class="padding-message" name="message" id="fancy-text"></textarea> 
              <label><?= Yii::t('app', 'app.Message') ?></label> 
              <div class="help-block"></div> 
             </div> 
            </div><!-- End .form-group --> 

            <div class="contact-form lg-margin h100"> 
             <?= '<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA code" height="60" width="120">' ?> 
             <label><?= Yii::t('app', 'app.Security code') ?></label> 
             <input class="padding-message" name="captcha" id="fancy-text" /> 
             <div class="help-block"></div> 
            </div><!-- End .form-group --> 

            <div class="xss-margin"></div><!-- space --> 

            <div class="contact-form submit-button"> 
             <button id="submit-btn"><?= Yii::t('app','app.Send') ?></button> 
            </div> 
           </div> 
          </div> 
         </div><!-- panel-end --> 
        </form> 

ここだJSメソッドをクリックイベントを追加: -

$('#submit-btn').click(function(){ 
    var name = $('input[name="names"]'); 
    var email = $('input[name="email"]'); 
    var phone = $('input[name="phone"]'); 
    var title = $('input[name="title"]'); 
    var captcha = $('input[name="captcha"]'); 
    var message = $('textarea[name="message"]'); 
    $.ajax({ 
     method: 'post', 
     url: '/admin/site/contactprocess', 
     data: { 
      name: name, 
      email: email, 
      phone: phone, 
      title: title, 
      message: message 
     }, 
     success: function (data) { 
      return false; 
     } 
    }); 
    return false; 
}); 
+0

何も変更。ここでも最大のコールスタック。 –

+0

問題を発見しました。私は入力オブジェクト全体を与えていましたが、それは価値がありませんでした。 –

関連する問題