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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: отметить сохрареный чекбокс

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
kuller
Отправлено: 15 Мая, 2013 - 16:38:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




помогите пожалуйста. Мне надо при редактировании записи отметить чекбоксы которые были отмечены ранее. Значения чекбоксов записаны в таком виде

test 1||test 2

код у меня получился такой

PHP:
скопировать код в буфер обмена
  1.  
  2. $serv = explode('||', stripslashes($row_edit['services']));
  3.  
  4. $a = array(1 => 'test 1', 2 => "test 2");
  5. for($i=0; count($serv)>$i; $i++)
  6. {
  7.     if(in_array($serv[$i], $a)) $checked = 'checked'; else $checked = '';
  8. }
  9.  


в результате не одного чекбокса не отмечает
 
 Top
DelphinPRO
Отправлено: 15 Мая, 2013 - 16:45:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ето весь код? а как происходит вывод разметки?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kuller
Отправлено: 15 Мая, 2013 - 16:51:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




DelphinPRO пишет:
ето весь код? а как происходит вывод разметки?


разметка как обычно.

CODE (html):
скопировать код в буфер обмена
  1. echo '<input type="checkbox" name="check1[]" value="1" '.$checked.' />  <input type="checkbox" name="check1[]" value="2" '.$checked.' />  ';


за цыклом for. Пробывал вставить внутри цыкла. Тогда галочку ставит на всех чекбоксах

(Отредактировано автором: 15 Мая, 2013 - 16:51:54)

 
 Top
DelphinPRO
Отправлено: 15 Мая, 2013 - 16:54:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




kuller пишет:
за цыклом for

как я и подозревал
в этом и проблема
выводите внутри цикла, ибо переменная $checked перезаписывается на каждой итерации цикла.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $serv = explode('||', stripslashes($row_edit['services']));
  2.  
  3. $a = array(1 => 'test 1', 2 => "test 2");
  4. for($i=1; count($serv)>=$i; $i++)
  5. {
  6.     if(in_array($serv[$i], $a)) $checked = 'checked'; else $checked = '';
  7.     echo '<input type="checkbox" name="check1[]" value="'.$i.'" '.$checked.' />';
  8. }


примерно так, правда $i будет некорректным Улыбка но это вы сами дорабатывайте

(Отредактировано автором: 15 Мая, 2013 - 16:56:51)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kuller
Отправлено: 15 Мая, 2013 - 17:02:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




DelphinPRO пишет:
kuller пишет:
за цыклом for

как я и подозревал
в этом и проблема
выводите внутри цикла, ибо переменная $checked перезаписывается на каждой итерации цикла.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $serv = explode('||', stripslashes($row_edit['services']));
  2.  
  3. $a = array(1 => 'test 1', 2 => "test 2");
  4. for($i=1; count($serv)>=$i; $i++)
  5. {
  6.     if(in_array($serv[$i], $a)) $checked = 'checked'; else $checked = '';
  7.     echo '<input type="checkbox" name="check1[]" value="'.$i.'" '.$checked.' />';
  8. }


примерно так, правда $i будет некорректным Улыбка но это вы сами дорабатывайте


работает. Вроде делал внутри цыкла, везде галочки ставились. Наверно опичатался гдета. Спасибо
 
 Top
imya
Отправлено: 15 Мая, 2013 - 17:18:06
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




Как-то странно цикл прописан, если честно, лучше напишите вторым параметром


Наверное это DelphinPRO имел ввиду.


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
DelphinPRO
Отправлено: 15 Мая, 2013 - 17:57:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




imya пишет:
Наверное это DelphinPRO имел ввиду.

не это

в приведенном цикле переменная $i - индекс массива выбранных чекбоксов, а он разный, в зависимости от выбора.

следует использовать индекс массива $a который постоянен.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kuller
Отправлено: 15 Мая, 2013 - 20:15:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




DelphinPRO пишет:
imya пишет:
Наверное это DelphinPRO имел ввиду.

не это

в приведенном цикле переменная $i - индекс массива выбранных чекбоксов, а он разный, в зависимости от выбора.

следует использовать индекс массива $a который постоянен.


только сейчас заметил... Огорчение маленько не работает... на последний чекбокс галочку не ставит почему та...

PHP:
скопировать код в буфер обмена
  1.  
  2. $a = array(1 => 'test 1', 2 => "test 2");
  3. $b = explode('||', 'test 1||test 2');
  4.                        
  5.  
  6. for($i=1; $i<=count($b); $i++)
  7. {
  8.      if(in_array($b[$i], $a)) $checked = 'checked'; else $checked = '';
  9.      echo '<input type="checkbox" name="check1[]" value="1" '.$checked.' /> <label for="'.$check1[$i].'">'.$a[$i].'</label>';
  10. }
  11.  


P.S. разве есть разница между и ?
 
 Top
DelphinPRO
Отправлено: 15 Мая, 2013 - 20:32:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




нужно перебирать постоянный массив (в последнем примере - $a)
у него индексы постонные, и будут соответсвовать действительности
и, в value чекбокса его тоже следует подставлять.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
kuller
Отправлено: 15 Мая, 2013 - 21:13:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




DelphinPRO пишет:
нужно перебирать постоянный массив (в последнем примере - $a)
у него индексы постонные, и будут соответсвовать действительности
и, в value чекбокса его тоже следует подставлять.


Вроде все понятно написали. Но чета я так и не могу сделать Упёрся в стенку на какую та ерунду весь день потратил. Не могли бы написать? пожалуйста
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB