Yii2 onchange单选按钮提交表格

时间:2018-07-18 06:14:57

标签: forms yii2 submit yii2-advanced-app

我有一个单选按钮,显示我的付款方式。我有其他形式的当前输入。问题是当用户更改单选按钮或复选框时,我的表单已提交。单击以下订单时,表单第三次提交,并且在数据库中下了3个订单,但她只是一个。我只想在用户单击“下订单”按钮时下订单... 这是视图:

    <?php $form = ActiveForm::begin([
                            'id' => 'account-profile',
                            'fieldConfig' => [
                                'template'     => "{label}\n<div class=\"col-lg-12\">{input}</div>\n<div class=\"col-sm-offset-3 col-lg-12\">{error}\n{hint}</div>",
                                'labelOptions' => ['class' => 'control-label']   ,
                            ],
                            'enableAjaxValidation' => true,
                            'enableClientValidation' => false,
                        ]); ?>




     <div id="payment" class="woocommerce-checkout-payment account-payment">
         <ul class="wc_payment_methods payment_methods methods">
           <?php if($payments){
                echo $form->field($order, 'payment_type_id')->radioList(ArrayHelper::map(PaymentTypes::find()->where('active = 1')->orderBy(['sort' => SORT_ASC])->all(), 'id', 'name'), ['item' => function($index, $label, $name, $checked, $value) {
                $return = '<li class="wc_payment_method payment_method_bacs">';
                $return .= '<label style="display: inline-block;" for="'.$label.'">'.$label.'</label>';
                $return .= '<input class="check_'.$index.'" id="'.$label.'" type="radio" class="input-radio" name="'.$name.'" value="'.$value.'"  checked=\'checked\' data-order_button_text="" />';
                if($index == 0){
                   $return .= '<img style="float:left;width:220px" src="'.Yii::$app->urlManagerFrontend->baseUrl.'/img/payment_methods.png" />';
                }
                $return .= '</li>';
                return $return;
          }, 'unselect' => null])->label(false);
        }?>
      </ul>
      <div class="form-row place-order">
           <p class="form-row terms wc-terms-and-conditions">
           <div class="col-sm-12 ta-right terms">
               <div class="row">
                    <a style="display: inline-block;" target="_blank" href="/<?= $lang->url ?>/<?= $terms->url ?>">(<?= Yii::t('app', 'app.readterms') ?>)</a>
                    <?=$form->field($order, 'acceptTerms')->checkboxlist(['1' => '<span>' . Yii::t('app','app.agree') . ' <a href="/' . $lang->url . '/' . $terms->url . '" target="_blank">'.Yii::t('app', 'app.Terms').'</a></span>'], ['item' => function($index, $label, $name, $checked, $value) {
                    $return = '<input type="checkbox" class="input-checkbox" name="terms"  id="terms" />
                    <label style="display: inline; color: black;" for="terms" class="checkbox">'.Yii::t('app', 'app.terms').'</label>';
                    return $return;
              }, 'unselect' => null])->label(false);
         ?>
<input type="hidden" name="terms-field" value="1" />
      </div>
    </div>
    <input type="hidden" name="lang" value="<?= $lang->url ?>" >
 </div>
</div>
<input type="hidden" value="" id="planPriceInput">
<div class="col-sm-12" id="detail-information-pay">
<div class="row">
<?= Html::submitButton(Yii::t('app','app.Купи плана'), ['class' => 'btn btn-warning','id'=>'submitPlan']) ?>
</div>
</div>
</div>

这是控制器,当我保存信息时

 if ($order->load(Yii::$app->request->post())) {
        if(isset($_POST["choosePlan"])) {
            $companyInfo = CompanyInfo::findOne(1);
            $headers = "MIME-Version: 1.0\r\n";
            $headers .= "Content-type: text/html; charset=utf-8\r\n";
            $headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
            $headers .= "From: " . $companyInfo->email . "\r\n";
            if($order->save()) {
                $plan = AccountPlan::findOne((int)$_POST["choosePlan"]);

0 个答案:

没有答案
相关问题