Ich bekomme nur teilweise Daten in der Steuerung. hier ist die SituationYii2 Dynamisches Modell und Ajax fehlt Datenproblem
meine Aktion in-Controller, der die Ansicht mit der Form zeigen:
$model_sms = array();
$model_sms = new \yii\base\DynamicModel(['sms_code', 'iduser', 'mail_status', 'signup_control']);
$model_sms->addRule(['sms_code, iduser, mail_status, signup_control'], 'required');
$model_sms->addRule(['iduser, mail_status, signup_control'], 'integer');
$model_sms->addRule('sms_code', 'string', ['min' => 5, 'max' => 5]);
$model_sms->iduser = $user->id;
$model_sms->mail_status = $mail_status;
$model_sms->signup_control = 1;
return $this->renderAjax('_sms_confirmation', ['model_sms' => $model_sms]);
dann die Ansicht Code hier ist
<?php
use yii\helpers\Html;
use kartik\form\ActiveForm;
?>
<div class=" site-login">
<?php $form = ActiveForm::begin(['id' => 'frmsmsconfirm', 'action'=>'/index.php?r=site/confirmsms']); ?>
<div class="row">
<div class="col-md-1">
</div>
<div class="col-md-10">
<div class="formSeparator"><span>Enter SMS code</span></div>
<p class="logtxt">Please fill out the following fields to login:</p>
<?php
echo $form->field($model_sms, 'iduser')->hiddenInput()->label(false);
echo $form->field($model_sms, 'mail_status')->hiddenInput()->label(false);
echo $form->field($model_sms, 'signup_control')->hiddenInput()->label(false);
echo $form->field($model_sms, 'sms_code', [
'feedbackIcon' => [
'default' => 'phone',
'success' => 'ok',
'error' => 'exclamation-sign',
'defaultOptions' => ['class'=>'cw']
]
])->textInput(['placeholder'=>'Enter SMS code', 'class'=>'newxinput xinput'])->label('SMS code');
?>
</div>
<div class="col-md-1">
</div>
</div>
<div class="row">
<div class="col-md-1">
</div>
<div class="col-md-10">
<div class="scforget">
If you did not receive SMS <?= Html::a('send it again', ['site/smsresend']) ?>.
</div>
</div>
<div class="col-md-1">
</div>
</div>
<div class="row">
<div class="col-md-1">
</div>
<div class="col-md-10"><br><br>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'xsubbtn', 'name' => 'login-button']) ?>
</div><br><br>
</div>
<div class="col-md-1">
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
<script>
$('#frmsmsconfirm').on('submit', function(e){
e.preventDefault();
e.stopImmediatePropagation();
var form = $(this);
alert('ajax start');
alert(form.serialize());
$.ajax({
url : form.attr('action'),
type : 'post',
data : form.serialize(),
success: function (response)
{
alert('radi a ne radi... hm');
$('#sc_content').html(response);
},
error: function()
{
console.log('internal server error');
}
});
});
</script>
ich alle richtigen Daten in Benachrichtigung erhalten (serialisiert. Form), aber wenn es zu einer anderen Aktion im Controller übergibt ich nur sms_code, andere 3 Felder kommen leer ... hier ist der Code bekommen ...
$model_sms = array();
$model_sms = new \yii\base\DynamicModel(['sms_code', 'iduser',
'mail_status', 'signup_control']);
$model_sms->addRule(['sms_code, iduser, mail_status,
signup_control'], 'required');
$model_sms->addRule(['iduser, mail_status, signup_control'],
'integer');
$model_sms->addRule('sms_code', 'string', ['min' => 5, 'max' =>
5]);
$model_sms->load(Yii::$app->request->post());
echo $model_sms->sms_code.'- xxx - <br>';
echo $model_sms->iduser.'- xxx - <br>';
echo $model_sms->mail_status.'- xxx - <br>';
echo $model_sms->signup_control.'- xxx - <br>';
exit;
Hat anybod eine Idee? Dank