Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавление инкримента в инпут #324

Open
AlexMetalcore opened this issue Mar 17, 2020 · 3 comments
Open

Добавление инкримента в инпут #324

AlexMetalcore opened this issue Mar 17, 2020 · 3 comments
Milestone

Comments

@AlexMetalcore
Copy link

AlexMetalcore commented Mar 17, 2020

Доброй ночи!Возник вопрос! Можно ли средствами виджета сделать так что бы при клике на (+) (добавление) в поле https://prnt.sc/rhi0u6 добавлялся порядковый номер?

@unclead
Copy link
Owner

unclead commented Mar 17, 2020

из коробки такого функционала нет, но можно реализовать самому используя js события (в вики про них написано)

@AlexMetalcore
Copy link
Author

AlexMetalcore commented Mar 17, 2020

из коробки такого функционала нет, но можно реализовать самому используя js события (в вики про них написано)

Да, я уже после того как написал в вике увидил js события. Все ок, спасибо. Но есть еще один вопрос: как вывести данные с бд, что бы они так же корректно обновляли существующие и добавялил новые. Вот база https://prnt.sc/rhxbbo. Выводяться данные в зависимости от id домена. https://prnt.sc/rhxcwh - вот данные. Редактируеться только последняя запись
Вот как в виде отображаеться :

$form = ActiveForm::begin([
'enableAjaxValidation' => true,
'enableClientValidation' => false,
'validateOnChange' => false,
'validateOnSubmit' => true,
'validateOnBlur' => false
]);
foreach ($exists_payments_for_domain as $model):
if($model->getErrors()):


$form->errorSummary($model , ['header' => 'Исправьте следующие ошибки:'])

endif;
$form->field($model, 'domain_data')->widget(MultipleInput::className(), [
'id' => 'rebill_settings',
'columns' => [
[
'name' => 'domain_name',
'title' => 'Домен',
'type' => \unclead\multipleinput\MultipleInputColumn::TYPE_HIDDEN_INPUT,
'value' => function($data) {
return Yii::$app->request->hostName;
},
],
[
'name' => 'number',
'title' => 'Номер',
'options' => [
'class' => 'number_rebill',
],
'enableError' => true,
'value' => function($data) {
return $data['number'];
},
],
[
'name' => 'day',
'title' => 'Дни',
'enableError' => true,
'value' => function($data) {
return $data['day'];
},
],
]
])->label(false);
endforeach;

Html::submitButton('Сохранить', ['class' => 'btn btn-success'])

    ActiveForm::end();

Код екшена:

$model = new PaymentSettings();
$domain = ThemeDomain::getDataDomain($this->request->hostName);
$exists_payments_for_domain = PaymentSettings::getAllSettings($domain);
if($exists_payments_for_domain) {
foreach ($exists_payments_for_domain as $model) {
$model->domain_data[] = [
'domain_name' => $domain->domain,
'number' => $model->number,
'day' => $model->day
];
}
}
if ($model->load(Yii::$app->request->post())) {
//var_dump($model->domain_data);die;
foreach ($model->domain_data as $items) {
$add_rebill = new PaymentSettings();
$add_rebill->domain_id = ThemeDomain::getDataDomain($items['domain_name'])->id;
$add_rebill->number = $items['number'];
$add_rebill->day = $items['day'];
if (Yii::$app->request->isAjax && $add_rebill->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($add_rebill);
}
if($add_rebill->validate()) {
$add_rebill->save();
}
}
return $this->redirect(['/admin/payment-settings']);
}

    return $this->render('create', [
        'model' => $model,
        'exists_payments_for_domain'    =>  $exists_payments_for_domain
    ]);

Подскажите ,пожалуйста, как сделать все корректно и можно ли в таком ключе все сделать!Зарание спасибо. Если что то еще надо по коду, смогу предоставить

@unclead
Copy link
Owner

unclead commented Mar 18, 2020

@AlexMetalcore виджет не отвечает за логику сохранения, он лишь предоставляет функционал визуального управления.

Рекомендую почитать https://github.com/unclead/yii2-multiple-input/wiki/Basic-scenario-of-usage
Если что-то не понятно, то лучше задать вопрос на официальном форуме yii (https://yiiframework.ru/forum/)

@unclead unclead added this to the 3.0 milestone Jun 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants