我有一个单选按钮,显示我的付款方式。我有其他形式的当前输入。问题是当用户更改单选按钮或复选框时,我的表单已提交。单击以下订单时,表单第三次提交,并且在数据库中下了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"]);