Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: выделить нужный checkbox (PHP, JavaScript)

Сообщения:  [1-10]   [11-18] 

 
 автор: Terry   (12.07.2008 в 01:15)   письмо автору
 
   для: Terry   (12.07.2008 в 00:05)
 

Наконец-таки разобрался, исправил все баги и всё заработало. Спасибо всем, кто помог - и за наводящие вопросы, заставившие ещё раз пересмотреть структуру базы данных, и за советы, и за участие.

   
 
 автор: Terry   (12.07.2008 в 00:05)   письмо автору
 
   для: sms-send   (11.07.2008 в 23:39)
 

ICQ 299350272
Не моя аська, стоит на компе, которым я пользуюсь сегодня-завтра. С разрешения хозяйки.

   
 
 автор: sms-send   (11.07.2008 в 23:39)   письмо автору
 
   для: Terry   (11.07.2008 в 23:31)
 

>В форме:
>
<input type="checkbox"  name="to_copy[]" value="{groups.group_id}" />



Лучше показать не шаблон, а реальную html форму, которую генерирует скрипт.

***
ICQ есть?

   
 
 автор: Terry   (11.07.2008 в 23:31)   письмо автору
 
   для: sms-send   (11.07.2008 в 22:41)
 

Если в БД вручную выставить нужные группы, то они отмечаются в checkbox'ах.
Если в checkbox'ах выставить нужные группы - происходит что-то мне непонятное: передаётся то количество значений, сколько выбрано, но все они равны первому выбранному значению. Попытаюсь объяснить:
В форме:
<input type="checkbox"  name="to_copy[]" value="{groups.group_id}" />

В обработчике:
if(isset ($_REQUEST["to_copy"]))
    {    
        $group_id = array();
        for($i=0; $i<sizeof($_REQUEST['to_copy']); $i++)
        {
            $group_id[$i]['gr_id'] = (int)$_REQUEST['to_copy'][$i];
            $id_group = $group_id[$i]['gr_id'];
            
                   ?>
                   <script language="javascript">alert('<?php print $id_group;?>');</script>
                  <?php
            
        
}
    }

Т.е., при попытке распечатать передаваемые значения я каждый раз получаю alert только с id первой отмеченной группы, соответственно и в БД при дальнейшей обработке заносится только одна из выбранных групп.

   
 
 автор: sms-send   (11.07.2008 в 22:41)   письмо автору
 
   для: Terry   (11.07.2008 в 15:23)
 

Я про то, где именно происходит ошибка.
2 вопроса:

1. Если в checkbox'ах выставить нужные группы, они сохраняются в БД?
2. Если в БД вручную выставить нужные группы, они отмечаются в checkbox'ах?

   
 
 автор: Terry   (11.07.2008 в 16:23)   письмо автору
 
   для: sim5   (11.07.2008 в 15:43)
 

To: Автор: sim5 (11.07.2008 в 15:43)

Список я получаю, а вот группы не выделяются.
Списками, возможно, удобней - в будущем учту) Только и в этом хочется разобраться - мало ли пригодится)

   
 
 автор: Terry   (11.07.2008 в 16:20)   письмо автору
 
   для: sim5   (11.07.2008 в 15:43)
 

Сорри, не туда отправил

   
 
 автор: Terry   (11.07.2008 в 16:18)   письмо автору
 
   для: Roma   (11.07.2008 в 16:00)
 

Если я правильно тебя понял - 2 цикла, во внешнем перебираем все чекбоксы на форме, во внутреннем - для каждого чекбокса - ищем в массиве с id нужных группу, при совпадении - отмечаем чекбокс. А раз у меня форма и обработчик в разных файлах - поставить на форме в инпуте переменную.... Спасибо! Надеюсь, заработает.

   
 
 автор: Roma   (11.07.2008 в 16:00)   письмо автору
 
   для: sim5   (11.07.2008 в 15:43)
 

Если я правильно понял суть проблемы.
может как-то так:

<?php
//$group_arr - массив id-групп, к которым относится данный товар
$query=mysql_Query("select group_id,group_name from groups");
while(
$res=mysql_fetch_array($query)){
   if(
in_array($res['group_id']),$group_arr)$checked="checked";else $checked="";
   echo
"<input name=group[] type=checkbox $cheched value='".$res['group_id']."'>".$res['group_name'];
}
?>


ps ой, сообщение адресовалось Terry

   
 
 автор: sim5   (11.07.2008 в 15:43)   письмо автору
 
   для: Terry   (11.07.2008 в 15:23)
 

По здравому смыслу - группа товаров, это верхний уровень тогда, иначе путаница. Группы должны иметь категории товаров - собственно выражение "Группа товаров" это просто верхняя категория с id_parent равная 0. Ну а далее (подгруппа) субкатегории с id_parent равные id родителей. Товар в свою очередь, кроме id_parent (принадлежность родителю), должен иметь еще и id_group, то есть в какие группы товаров он может входить (ктегории самого верхнего уровня). Тогда получить этот список и согласно ему отметить чекбоксы, это уже не сложно. Вот только менять (переносить из группы в группу) не очень удобно будет. Все-таки (мне так кажется) лучше списками - компактней и удобней.

   

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования