Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Checkbox отправляет значение не нажатым.
Форумы портала PHP.SU » » Вопросы новичков » Checkbox отправляет значение не нажатым.

Страниц (1): [1]
 

1. lwmisanea - 19 Февраля, 2015 - 14:43:06 - перейти к сообщению
Здравствуйте! Есть код:

PHP:
скопировать код в буфер обмена
  1. <input type="checkbox" name="price" id="price" value="1"/>


но даже если checkbox не нажат в БД отправляется значение 1. Мне нужно чтобы значение отправлялось только когда нажат checkbox. Помогите пожалуйста решить эту задачу. Спасибо.
2. caballero - 19 Февраля, 2015 - 15:00:39 - перейти к сообщению
если чекбокс не установлен никакое значение не отправлятся вообще
чекбокса просто нет в реквесте
3. skiphog - 19 Февраля, 2015 - 15:01:11 - перейти к сообщению
...
4. lwmisanea - 19 Февраля, 2015 - 15:04:01 - перейти к сообщению
caballero пишет:
если чекбокс не установлен никакое значение не отправлятся вообще
чекбокса просто нет в реквесте


Раньше так и происходило но сейчас как будто игнорируется состояние чекбокса
(Добавление)
Я пробовал этот вариант
PHP:
скопировать код в буфер обмена
  1. <input type="hidden" name="price" id="price" value="0" />
  2. <input type="checkbox"  name="price" id="price" value="1" />
но даже если нажат чекбокс до второго input не доходит и ничего не отправляет
5. GoDr - 19 Февраля, 2015 - 15:19:05 - перейти к сообщению
lwmisanea, значит что-то делаешь не так.. Если значение не выбрано. то ничего не отправляется.

Покажи всю форму и результат $_REQUEST
(Добавление)
lwmisanea пишет:
Я пробовал этот вариант
этот вариант делается именно для того чтобы всегда было значение. Значит ты где-то оставил поле
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="price" id="price" value="0" />
6. lwmisanea - 19 Февраля, 2015 - 15:47:50 - перейти к сообщению
GoDr пишет:
lwmisanea, значит что-то делаешь не так.. Если значение не выбрано. то ничего не отправляется.

Покажи всю форму и результат $_REQUEST
(Добавление)
lwmisanea пишет:
Я пробовал этот вариант
этот вариант делается именно для того чтобы всегда было значение. Значит ты где-то оставил поле
CODE (html):
скопировать код в буфер обмена
  1. <input type="hidden" name="price" id="price" value="0" />


PHP:
скопировать код в буфер обмена
  1.                 <form id="post-postdata-form">
  2.                                                         <?PHP if (of_get_option('form_title_desc') != 'separate') { ?>
  3.                                                         <textarea id="post-title" placeholder="<?PHP _e('Опишите свой пост...'); ?>"><?PHP echo $title; ?></textarea>
  4.                                                         <?PHP } else { ?>
  5.                                                         <textarea id="post-title" placeholder="<?PHP _e('Название...'); ?>"><?PHP echo $title; ?></textarea>
  6.                                                         <textarea id="post-content" placeholder="<?PHP _e('Описание...'); ?>"></textarea>
  7.                                                         <?PHP } ?>
  8.  
  9.                                                         <?PHP if (of_get_option('htmltags') == 'enable') { ?>
  10.                                                                 <div class="description_instructions">
  11.                                                                         <?PHP _e('Allowed HTML tags:'); ?> <strong> <em> <a> <blockquote>
  12.                                                                 </div>
  13.                                                         <?PHP } ?>
  14.                                                        
  15.                                                         <?PHP if (of_get_option('posttags') == 'enable') { ?>
  16.                                                                 <div class="input-prepend">
  17.                                                                         <span class="add-on pull-left"><i class="fa fa-tags"> </i></span>
  18.                                                                         <input type="text" name="tags" id="tags" value="" placeholder="<?PHP _e('Метки должны быть разделены запятой.'); ?>" />
  19.                                                                 </div>
  20.                                                         <?PHP } ?>
  21.                                                        
  22.                                                         <?PHP if (of_get_option('price_currency') != '') { ?>
  23.                                                                 <?PHP if (of_get_option('price_currency_position') == 'right') { ?>
  24.                                                                 <div class="input-append">
  25.                                                                         <input class="pull-left" type="text" name="price" id="price" value="" placeholder="<?PHP _e('Price e.g. 23.45'); ?>" />
  26.                                                                         <span class="add-on"><?PHP echo of_get_option('price_currency'); ?></span>
  27.                                                                 </div>
  28.                                                                 <?PHP } else { ?>
  29.                                                                 <div class="input-prepend">
  30.                                                                         <span class="add-on pull-left"><?PHP echo of_get_option('price_currency'); ?></span>
  31.                                                                         <input  type="text" name="price" id="price" value="" placeholder="<?PHP _e('Price e.g. 23.45'); ?>" />
  32.                                                                 </div>
  33.                                                                 <?PHP } ?>
  34.                                                         <?PHP } ?>
  35.                                                        
  36.                                                         <div class="input-prepend<?PHP if (of_get_option('source_input') != 'enable') echo ' hide'; ?>">
  37.                                                                 <span class="add-on pull-left"><i class="fa fa-link"> </i></span>
  38.                                                                 <input type="text" name="photo_data_source" id="photo_data_source" value="<?PHP echo $source; ?>" placeholder="<?PHP _e('Источник, например: http://domain.com/link'); ?>" />
  39.                                                         </div>
  40.                                                        
  41.                                                         <?PHP echo post_dropdown_boards(); ?>
  42.                                                        
  43.                                                         <input type="text" class="board-add-new" id="board-add-new" placeholder="<?PHP _e('Введите название для новой доски'); ?>" />
  44.                                                         <?PHP echo post_dropdown_categories(__('Выберите категорию для новой доски'), 'board-add-new-category'); ?>
  45.                                                         <a id="post-postdata-add-new-board" class="btn btn-mini pull-right"><?PHP _e('Добавить новую доску...'); ?></a>
  46.                                                         <input type="hidden" value="<?PHP echo $attach_id; ?>" name="attachment-id" id="attachment-id" />
  47.                                                         <div class="clearfix"></div>
  48.                                                         <input <?PHP if ($noboard == 'yes' || $title == '') { echo ' disabled="disabled"'; } ?> class="btn btn-primary btn-large" type="submit" name="post" id="pinit" value="<?PHP _e('Добавить'); ?>" />
  49.                                                         <div class="ajax-loader-add-post ajax-loader hide"></div>
  50.                                                 </form>


В этом месте
PHP:
скопировать код в буфер обмена
  1. <input  type="text" name="price" id="price" value="" placeholder="<?PHP _e('Price e.g. 23.45'); ?>" />
я поменял на
PHP:
скопировать код в буфер обмена
  1. <input  type="checkbox" name="price" id="price" value="1" />
но не учитавается состояние checkbox. То есть всегда отправляется значение из value а мне нужно чтоб отправлялась только когда он нажат.
7. GoDr - 19 Февраля, 2015 - 16:10:51 - перейти к сообщению
lwmisanea, ёпрст... а показать код из HTML не судьба??? Зачем нам эта каша из PHP/HTML.....

В общем удалил лишнее как смог.. у меня всё нормально и адекватно работает.


PS
странная задача.. обычно стремятся получать результат всегда, так проверять и обрабатывать легче...
(Добавление)
.
что-то не у всех полей есть name.. Обрабатывать форму то как собираешься?
8. lwmisanea - 19 Февраля, 2015 - 17:59:49 - перейти к сообщению
всё решилось с помощью JQ
PHP:
скопировать код в буфер обмена
  1. <input type="checkbox" value="1" id="price" name="price" checked="checked" />
  2. <script>
  3.  
  4. $('#price').on('change', function(){
  5.    this.value = this.checked ? 1 : 0;
  6.    // alert(this.value);
  7. }).change();
  8.  
  9. </script>
9. likvidator - 19 Февраля, 2015 - 20:59:59 - перейти к сообщению

lwmisanea пишет:
всё решилось с помощью JQ

костыли форевер

 

Powered by ExBB FM 1.0 RC1