checkbox не передает данные при disabled=true
checkbox не передает данные при disabled=true
У меня есть форма, на ней есть checkbox (который пользователь не может редактировать в зависимости от ранее введенных данных)
<?= $form->field($model, 'try')->checkbox(['disabled' => 1]) ?>
в базе свойство try=1 при редактировании формы html выглядит так
<input type="checkbox" id="model-try" name="Model[try]" value="1" checked="" disabled="">
Но при сабмите [try] => 0.
мне надо что бы пользователь не мог отредактировать некоторые checkbox, но при это если они было 1 (т.е. нажаты) в форму они передавались 1.
Может кто-то сталкивался с такой проблемой, что делать?
Всем заранее спасибо.
<?= $form->field($model, 'try')->checkbox(['disabled' => 1]) ?>
в базе свойство try=1 при редактировании формы html выглядит так
<input type="checkbox" id="model-try" name="Model[try]" value="1" checked="" disabled="">
Но при сабмите [try] => 0.
мне надо что бы пользователь не мог отредактировать некоторые checkbox, но при это если они было 1 (т.е. нажаты) в форму они передавались 1.
Может кто-то сталкивался с такой проблемой, что делать?
Всем заранее спасибо.
Re: checkbox не передает данные при disabled=true
если он не должен редактировать то вы это проверяете на стороне сервера ... и потом например в сценарии выставляете ...
ато у вас получается вы выставили disabled .. человек зашел в инспектор в браузере изменил значение и вуаля ...
disabled никогда не идет на сервер ... а у вас приходит 0 только потому что yii генерирует hidden поле чтоб приходило значение 0 если выключен checkbox ... т.к. у чекбоксов при не поставленой галочке как и при disable тоже ничего не идет ...
всегда запомните правило если чтото нельзя вы это проверяете на сервере а никак не на клиенте ...
ато у вас получается вы выставили disabled .. человек зашел в инспектор в браузере изменил значение и вуаля ...
disabled никогда не идет на сервер ... а у вас приходит 0 только потому что yii генерирует hidden поле чтоб приходило значение 0 если выключен checkbox ... т.к. у чекбоксов при не поставленой галочке как и при disable тоже ничего не идет ...
всегда запомните правило если чтото нельзя вы это проверяете на сервере а никак не на клиенте ...
Re: checkbox не передает данные при disabled=true
При неустановленном чекбоксе классический чекбокс ничего на сервер не отправляет. Для решения этой проблемы yii добавляет к чекбоксам hidden-поля. Но вот как ведёт себя классический чекбокс при disabled - я не помню. Тоже ничего не отправляет на сервер? И что делает при disabled фреймворк с hidden-инпутом? Не выставляет его?
Re: checkbox не передает данные при disabled=true
При disabled аттрибуте в поле это поле не отправляется. Если хотите чтобы отправлялось используйте readonly
Re: checkbox не передает данные при disabled=true
Кстати, автор hidden не показал совсем нам. Что генерируется в хидене?
Re: checkbox не передает данные при disabled=true
Re: checkbox не передает данные при disabled=true
hidden поле у меня только одно.
<input type="hidden" name="_csrf-backend" value="ZWZEenp2RmMnJHwuVzJ2AB01HjslQzZQAy0UAAs4FDUfFAIvNCAVNQ==" class="">
'disabled' => 1 поле, checkbox, показывается но делает его не кликабельным, собственно что мне и надо.
<?= $form->field($model, 'try')->checkbox(['disabled' => 1]) ?>
пробовал так
<?= $form->field($model, 'try')->checkbox(['readonly' => 1]) ?>
checkbox кликабельный и соответственно в модель идет то значение что выбрал пользователь.
На стороне сервера проверка есть, но мне надо сделать интерактивную страничку когда пользователь выбирает то или иное значение checkbox-сы некоторые становятся не активными (в том числе и нажатые), некоторые становятся активными. Т.е. форма подсказывает пользователю что он может дальше редактировать, что нет. Плюс на любом этапе пользователь может сохранить страницу и вернуться к ней для дальнейшего редактирования, собственно тут и возникает проблема. Мне надо показать что checkbox выбран, но его пользователь изменить уже не может и при самбите это значение checked мне не передается, как будто пользователь изменил его.
<input type="hidden" name="_csrf-backend" value="ZWZEenp2RmMnJHwuVzJ2AB01HjslQzZQAy0UAAs4FDUfFAIvNCAVNQ==" class="">
'disabled' => 1 поле, checkbox, показывается но делает его не кликабельным, собственно что мне и надо.
<?= $form->field($model, 'try')->checkbox(['disabled' => 1]) ?>
пробовал так
<?= $form->field($model, 'try')->checkbox(['readonly' => 1]) ?>
checkbox кликабельный и соответственно в модель идет то значение что выбрал пользователь.
На стороне сервера проверка есть, но мне надо сделать интерактивную страничку когда пользователь выбирает то или иное значение checkbox-сы некоторые становятся не активными (в том числе и нажатые), некоторые становятся активными. Т.е. форма подсказывает пользователю что он может дальше редактировать, что нет. Плюс на любом этапе пользователь может сохранить страницу и вернуться к ней для дальнейшего редактирования, собственно тут и возникает проблема. Мне надо показать что checkbox выбран, но его пользователь изменить уже не может и при самбите это значение checked мне не передается, как будто пользователь изменил его.
Re: checkbox не передает данные при disabled=true
JS в помощь... без него не сделаете такое. Им же можно и при инициализации страниц разруливать состояния.
Re: checkbox не передает данные при disabled=true
вы заранее знаете что чекбокс редактировать нельзя ... отлично ... сделали disable ... а в сценарии прописываете это поле только при случае когда его можно редактировать ... и все load прочсто проигнорирует ненужные поля ...
внимательнее посмотрите возле инпута с чекбоксом ... удивитесь ...
Re: checkbox не передает данные при disabled=true
caHek2x... оффтоп... но... всё же... подскажите... зачем... столько троеточий...
...
...сорри... за толстый троллинг... не удержался...
...
...
...сорри... за толстый троллинг... не удержался...
...
Re: checkbox не передает данные при disabled=true
ахахах ничего страшного ) вы не первый кто на этом зацикливается ) ну вот не знаю... такая дурная привычка ... вместо запятой ставить троеточия ) у каждого свои тараканы )
Re: checkbox не передает данные при disabled=true
Я не зацикливался. Просто обратил внимание.
Кстати, со скобочками у вас тоже беда... (:
Кстати, со скобочками у вас тоже беда... (:
Re: checkbox не передает данные при disabled=true
Да действительно есть хиден поле
<input type="hidden" name="Model[try]" value="0">
Получается, как я и предполагал, только JS это делать.
Но как-то не логично получается, я передаю в форму (_form.php) чекбокс нажатым (try=1) и пользователь его видеть нажатым, а возвращается try=0
Но всем спасибо за комментарии.
<input type="hidden" name="Model[try]" value="0">
Получается, как я и предполагал, только JS это делать.
Но как-то не логично получается, я передаю в форму (_form.php) чекбокс нажатым (try=1) и пользователь его видеть нажатым, а возвращается try=0
Но всем спасибо за комментарии.
Re: checkbox не передает данные при disabled=true
логика в том что: если пользователь только должен увидеть но при отправки формы ничего не должно меняться то это поле и обрабатывать вы не должны ... поэтому вам должно быть все равно что приходит с формы ...Но как-то не логично получается, я передаю в форму (_form.php) чекбокс нажатым (try=1) и пользователь его видеть нажатым, а возвращается try=0