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 :: Передача значение в <tr> отмеченных checkbox

 PHP.SU

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


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

> Описание: чекбокс в таблице
Грачи прилетели
Отправлено: 22 Мая, 2015 - 12:17:21
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




Добрый день, уважаемые!

Необходимо вставить в базу записи в строке, отмеченные на форме чекбоксами. Именам чекбоксов присваиваться id записи в базе:

PHP:
скопировать код в буфер обмена
  1. while($Arr=mysqli_fetch_array($rez))    {               $c++;
  2. echo "<tr>";
  3. echo " <td align='left' width='2%'><input type='checkbox' name='ids[".$Arr['id']."]' value='".$Arr['id']."'  />
  4. echo " <td align='left'  width='21%'> ".$Arr['kategoriya']."</td>";
  5. echo " <td align='center' width='75%'>".$Arr['nazvanie']."</td>";
  6. echo "</tr>  ";
  7. }



Дальше, при сохранении формы, необходимо в insert добавить переданные данные/ Как правильно составить запрос ниже?

PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['save']))
  2.         {
  3.  
  4. mysqli_query($mysqli, "INSERT INTO `test` (`id`, `kategoriya`, `nazvanie`)
  5. VALUES ('".$_POST['id']."', '".$_POST['kategoriya']."', '".$_POST['nazvanie']."')
  6. );
  7. }



Спасибо

(Отредактировано автором: 22 Мая, 2015 - 12:31:57)

 
 Top
Sail
Отправлено: 22 Мая, 2015 - 12:50:20
Post Id



Участник


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


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




Грачи прилетели, в обработчкие (первым делом) напишите
и увидите, как обращаться к переданным значениям Ваших checkbox'ов
И, кстати, в имени checkbox'а зачастую ни к чему уточнять индекс массива... достаточно name='ids[]'
 
 Top
Грачи прилетели
Отправлено: 22 Мая, 2015 - 13:07:10
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




исправил ids[]:
PHP:
скопировать код в буфер обмена
  1. echo "  <td align='left' width='2%'><input type='checkbox' name='name='ids[]' value='".$Arr['id']."'  />


Выбрал 4 и 7 строку с соответствующими id и результат var_dump:

CODE (htmlphp):
скопировать код в буфер обмена
  1. array(2) { ["ids"]=> array(2) { [0]=> string(1) "4" [1]=> string(1) "7" } ["save"]=> string(18) "Сохранить" }


Sail, второй мой пост. где помогаете, но не могу результативно тыкнуть на Спасибо. т.к. я чечако и система не позволяет это сделать (спасибо).

(Отредактировано автором: 22 Мая, 2015 - 13:22:51)

 
 Top
Sail
Отправлено: 22 Мая, 2015 - 13:28:23
Post Id



Участник


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


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




Грачи прилетели, зачем в input'е лишнее name='?
Есть атрибут name, которому надо присвоить значение 'ids[]'.
PHP:
скопировать код в буфер обмена
  1. echo "<td align='left' width='2%'><input type='checkbox' name='ids[]' value='".$Arr['id']."' />
 
 Top
Грачи прилетели
Отправлено: 22 Мая, 2015 - 13:35:32
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




Sail, name то одно у input, это value или value тут не нужно?

(Отредактировано автором: 22 Мая, 2015 - 13:39:18)

 
 Top
Sail
Отправлено: 22 Мая, 2015 - 13:41:02
Post Id



Участник


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


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




Грачи прилетели, про 'name' - вижу, что результат вывода исправили в сообщении, а форма осталась с лишним "name='" Улыбка
Грачи прилетели, в приведённой форме Вы передаёте id записи, полученной из необозначенной в сообщении таблицы необозначенной базы.
Хотите вставить id, категорию и название в другую таблицу?
Если да, есть варианты...
Передавать название и категорию в массивах, подобно id, но в input'ах c типом hidden. В этом случае возможно их изменение на стороне клиента.
При обработке полученных идентификаторов выбранных записей - выборка из таблицы данных по полученным идентификаторам и запись их в таблицу 'test'...
(Добавление)
Грачи прилетели, а без значения ids - никак (если не передавать идентификатор в виде индекса массива)
 
 Top
Грачи прилетели
Отправлено: 22 Мая, 2015 - 13:54:28
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




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

теперь форма выглядит так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. echo "<tr>";
  2. echo "  <td><input type='checkbox' name='ids[]' value='".$Arr['id']."'  />";
  3. echo "  <td><input type='hidden' value='".$Arr['kategoriya']."' />".$Arr['kategoriya']."</td>";
  4. echo "  <td><input type='hidden' value='".$Arr['nazvanie']."' />".$Arr['nazvanie']."</td>";
  5. echo "</tr>";
  6. .....
  7.  
  8. <input type="submit" name="save"  value="Сохранить" >
  9.  


В а сохранении мне необходимо в цикле как-то этот запрос обработать?
При варианте ниже, значения не передаются-(

CODE (htmlphp):
скопировать код в буфер обмена
  1. if(isset($_POST['save']))
  2.         {
  3. //var_dump($_POST);
  4. echo "
  5. INSERT INTO `pmo`.`sotrudniki_kompetencii`
  6. (`id`, `id_sotrudniki`, `kategoriya`, `nazvanie`)
  7. VALUES
  8. (NULL, '".$_POST['id']."', '".$_POST['kategoriya']."', '".$_POST['nazvanie']."')
  9. ";
  10. }
  11.  
 
 Top
Sail
Отправлено: 22 Мая, 2015 - 14:07:23
Post Id



Участник


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


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




Грачи прилетели, раскомментируйте var_dump, инпутам добавьте атрибуты name, например, 'kat[]' и 'nazv[]'.
В итоге должны получиться элементы (массивы) $_POST['ids'], $_POST['kat'] и $_POST['nazv']
Вот из них и брать данные для следующего инсерта.
 
 Top
Грачи прилетели
Отправлено: 22 Мая, 2015 - 15:44:40
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




Sail,

сделал,

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo "<tr>";
  3. echo "  <td><input type='checkbox' name='ids[]' value='".$Arr['id']."'  />";
  4. echo "  <td> ".$Arr['id']."</td>";
  5. echo "  <td> <input type='hidden' value='".$Arr['kategoriya']."' name='kat[]' />".$Arr['kategoriya']."</td>";
  6. echo "  <td> <input type='hidden' value='".$Arr['nazvanie']."' name='nazv[]' />".$Arr['nazvanie']."</td>";
  7. echo "</tr>      ";
  8.  
  9.  


сохранение

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. var_dump($_POST);
  3.  
  4. foreach($_POST['ids'] as $ids)
  5.                 {
  6. echo "INSERT INTO `test` (`id`, `id_sot`, `kategoriya`, `nazvanie`) VALUES (NULL, '".$_POST['ids'][$ids]."', '".$_POST['kat'][$ids]."', '".$_POST['nazv'][$ids]."') ";
  7. }
  8.  
  9.  



Что-то не так...

(Отредактировано автором: 22 Мая, 2015 - 15:55:51)

 
 Top
Sail
Отправлено: 22 Мая, 2015 - 16:12:31
Post Id



Участник


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


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




Грачи прилетели пишет:
Что-то не так...
Вот небольшой демонстрационный пример:
Спойлер (Отобразить)

В форме для индекса в массиве имени скрытого инпута для названий и категорий всё-же надо использовать id записи для точной идентификации, потому что эти инпуты передаются все, в отличие от checkbox'а...
 
 Top
Грачи прилетели
Отправлено: 22 Мая, 2015 - 16:22:22
Post Id



Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Май 2015  


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




я понял ошибки, спасибо!
(пока так и не могу в репутацию сказать спасибо, не хватает сообщений)
 
 Top
DelphinPRO
Отправлено: 22 Мая, 2015 - 18:14:17
Post Id



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


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


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




так уже не делают. глобальные размеры задают в процентах. приправляют медиазапросами и сайт прекрасно вписывается в любое устройство от мобильника, до телевизора.


-----
Чем больше узнаю, тем больше я не знаю.
 
 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