
Thực hiện chuyển Form Confirm bằng Session.
Ở Form Index nhập giá trị của Form và truyền các giá trị nhập được từ Form index sang Fom Confirm
Ở Form Confirm, ta lấy ra các giá trị đã nhập vào từ Form index.
Và lưu lại trong cơ sở dữ liệu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
public function actionIndex() { $value1 = MekExchange::find()->select(['name', 'value'])->where(['id' => '1'])->one(); $value2 = MekExchange::find()->select(['name', 'value'])->where(['id' => '2'])->one(); $data = new MekVoucher(); $session = Yii::$app->session; if ( !$session->isActive) { $session->open(); } $model = new MekVoucherForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { $post = Yii::$app->request->post()['MekVoucherForm']; $session['data1'] = $post['voucher_value']; $session['data2'] = $post['address_wallet']; $session['data3'] = $post['name']; $session['data4'] = $post['email']; $session['data5'] = $post['phone']; $this->redirect('confirm'); } return $this->render('index', [ 'model' => $model, 'value1'=>$value1, 'value2'=>$value2, ]); } public function actionConfirm() { $session = Yii::$app->session; $id=Yii::$app->session->getId(); //echo $session['va']; $data1 = $session['data1']; $data2 = $session['data2']; $data3 = $session['data3']; $data4 = $session['data4']; $data5 = $session['data5']; $data = new MekVoucher(); $model = new MekVoucherConfirm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { $update = Yii::$app->request->post()['MekVoucherConfirm']; $dataform = $update['txhash']; $aaa = MekVoucher::find()->select('txhash')->where(['txhash' => $dataform])->all(); if ($aaa) { echo '<script type="text/javascript">alert("Mã TxHash của bạn nhập đã tồn tại trên hệ thống! Vui lòng nhập mã TxHash mới");</script>'; } else { $data->voucher_value = $data1; $data->address_wallet = $data2; $data->name = $data3; $data->email = $data4; $data->phone = $data5; $data->txhash = $dataform; $data->created_at = date("Y-m-d H:i:s", time()); $data->created_by = $data3; $data->save(); $this->redirect('thankyou'); } } if ($id) { return $this->render('confirm',['id'=>$id, 'model' => $model,'data1'=>$data1,'data2'=>$data2]); } else { return $this->redirect('/'); } $session->close(); $session->destroy(); } |
Tại Form index:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
<form action="" method="POST"> <input type="hidden" name="_csrf" value="<?=Yii::$app->request->getCsrfToken()?>" /> <div class="change_voucher"> <div ng-app=""> <div class="d-inline mek_coin"> <div class="form-group"> <?= Html::activeTextInput($model, 'voucher_value', [ 'required' => '', 'step' => 'any', 'class' => 'form-control', 'id' => 'voucher_value', 'placeholder' => 'Số MEK Coin', 'ng-model' => 'value', 'ng-change' => 'cal()', 'ng-model' => 'mekcoin', 'min' => '1', 'max'=>'10', 'type'=>'number', 'oninvalid'=>'this.setCustomValidity("Nhập số MekCoin trong khoảng 1 MekCoin đến 10 MekCoin")', 'oninput'=>'this.setCustomValidity("")' ]) ?> </div> </div> <div class="d-inline mek_tran"> <img src="img/tranfer.png" alt=""> </div> <div id="demo" class="d-inline mek_vouc form-control"> {{mekcoin*<?php echo $values2; ?>*<?php echo $values1; ?> | number:0}} <p class="price_vn">Vnđ</p> </div> </div> </div> <div class="mek_detail">TỶ GIÁ: 1 MEK Coin = $<?php echo $values2; ?> <span>$1.00 = <?php echo number_format($values1,0,",",","); ?> VNĐ</span></div> <!-- Form info --> <div class="form-group"> <?= Html::activeTextInput($model, 'address_wallet', [ 'required' => '', 'step' => 'any', 'class' => 'form-control', 'id' => 'mek_address', 'type'=>'text', 'placeholder' => 'Địa chỉ ví MEK chứa MEK Coin của bạn', 'oninvalid'=>'this.setCustomValidity("Nhập địa chỉ ví Mek của bạn!")', 'oninput'=>'this.setCustomValidity("")' ]) ?> </div> <div class="form-group"> <?= Html::activeTextInput($model, 'name', [ 'required' => '', 'step' => 'any', 'class' => 'form-control', 'id' => 'name', 'type'=>'text', 'placeholder' => 'Họ và tên', 'oninvalid'=>'this.setCustomValidity("Nhập Họ và tên của bạn!")', 'oninput'=>'this.setCustomValidity("")' ]) ?> </div> <div class="form-group"> <?= Html::activeTextInput($model, 'email', [ 'required' => '', 'step' => 'any', 'class' => 'form-control', 'id' => 'email', 'type'=>'email', 'placeholder' => 'Email để nhận mã VOUCHER', 'oninvalid'=>'this.setCustomValidity("Nhập Email của bạn để nhận mã Voucher!")', 'oninput'=>'this.setCustomValidity("")' ]) ?> </div> <div class="form-group"> <?= Html::activeTextInput($model, 'phone', [ 'required' => '', 'step' => 'any', 'class' => 'form-control', 'id' => 'phone', 'type'=>'number', 'placeholder' => 'Số điện thoại liên lạc', 'oninvalid'=>'this.setCustomValidity("Nhập Số điện thoại của bạn!")', 'oninput'=>'this.setCustomValidity("")' ]) ?> </div> <div class="mek_submit"> <div class="checkbox"> <label><input type="checkbox" required> Tôi đã đọc các <a href="#">Quy định</a><br>& chấp nhận các <a href="#">Điều khoản</a></label> </div> <?= Html::submitButton('Xác nhận', ['id'=>'submit','class' => 'button block btn btn-default']) ?> </div> </form> |
Tại form Confirm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<div class="confirm_form"> <form class="go-right go_left" method="POST"> <input type="hidden" name="_csrf" value="<?=Yii::$app->request->getCsrfToken()?>" /> <div class="form-group"> <?= Html::activeTextInput($model, 'txhash', [ 'required' => '', 'step' => 'any', 'class' => 'form-control', 'id' => 'name', 'type'=>'text', 'placeholder' => 'Nhập mã giao dịch chuyển MEK thành công', ]) ?> <label for="name">Txhash</label> </div> <?= Html::submitButton('Xác nhận', ['class' => 'button block btn btn-default']) ?> </form> </div> |
Good Job