2017-08-16 110 views
0

我紅色的另一個帖子,但無法實現特別是我的問題在哪裏。我想我不會在提交時多次調用函數。這是一個聯繫表,我想通過ajax發送到控制器的數據將被驗證的行爲,如果它是好的將被保存在數據庫表中。你能指點我的錯誤在哪裏嗎?謝謝! 形式:形式submision上超出最大調用堆棧大小

<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

您應該單擊事件適用於您提交按鈕,使阿賈克斯,而不是使用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

看到了問題。我給整個輸入對象,而不是它的價值。 –

相關問題