За последние 24 часа нас посетили 22510 программистов и 1011 роботов. Сейчас ищет 781 программист ...

реализация checkbox

Тема в разделе "Yii", создана пользователем mixnet, 9 дек 2020.

  1. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    я в новичок в YII, подскажите как сделать чтоб при нажатии на флажок, он запоминался

    в контроллере создал action

    PHP:
    1.     public function actionPanel()
    2.     {
    3.         $model = new PanelForm();
    4.         $model->load(\Yii::$app->request->post());
    5.  
    6.         return $this->render('panel', [
    7.             'model' => $model,
    8.         ]);
    9.     }
    затем создал модель

    PHP:
    1. namespace backend\models;
    2.  
    3. use Yii;
    4. use yii\base\Model;
    5.  
    6. /**
    7. * Panel form
    8. */
    9. class PanelForm extends Model
    10. {
    11.     public $prompt = true;
    12.  
    13.     /**
    14.      * @inheritdoc
    15.      */
    16.     public function rules()
    17.     {
    18.         return [
    19.             ['prompt', 'boolean'],
    20.         ];
    21.     }
    22.  
    23.     /**
    24.      * @inheritdoc
    25.      */
    26.     public function attributeLabels()
    27.     {
    28.         return [
    29.             'prompt' => Yii::t('backend', 'Показывать подсказку')
    30.         ];
    31.     }
    и вьюшку

    PHP:
    1. use yii\helpers\Html;
    2. use yii\bootstrap\ActiveForm;
    3.  
    4. /* @var $form yii\bootstrap\ActiveForm */
    5. /* @var $model \backend\models\PanelForm */
    6.  
    7. $this->title = Yii::t('backend', 'Panel');
    8. $this->params['breadcrumbs'][] = $this->title;
    9.  
    10. ?>
    11.  
    12. <?php $form = ActiveForm::begin(['id' => 'panel-form']); ?>
    13.                         <?=$form->field($model, 'prompt')->checkbox()?>
    14.         <?php ActiveForm::end() ?>
    по умолчанию всегда флажок нажатый public $prompt = true;

    как сделать чтоб при нажатии, он переключался и запоминался?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Ну как бы по получению формы его надо куда-то запомнить :) А как ты думал? В базу, в файл, куда-нибудь.

    Ты же понимаешь, где клиент, где сервер?
    --- Добавлено ---
    Вообще, по Yii есть документация на всех языках СНГ, никак не прочитать?
     
  3. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    конечно думал, насчет запоминания лучше в моем случае в куки записать, а потом уже отслеживать)
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Ну и в чём проблема? Не найти в русскоязычной документации по Yii2, как куку поставить? https://www.yiiframework.com/doc/guide/2.0/ru, читаешь от начала до конца, и не задаёшь глупых вопросов :)
     
  5. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    проблема в том, как checkbox отловить в yii,

    например проверка загрузки модели и получения post запроса знаю как получить, а как именно checkbox?
    if($model->load(Yii::$app->request->post(),''))
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    $model->prompt. И про это тоже есть по ссылочке :)
    --- Добавлено ---
    Активные модели (модели форм) - главная фишка фреймворка
     
    mixnet нравится это.