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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Передача данных в БД через radiobox и checkbox
 
 автор: allforweb   (17.09.2010 в 15:48)   письмо автору
 
 

Вопрос такой, есть форма для передачи данных в БД (добавление статической страницы). Все нормально получается кроме передачи данных через radiobox. У меня две кнопки, выбрать можно только одну и одна уже актинва по умолчанию.

Задумка такая: если стоит 1 – страница активна и показывается на сайте, если стоит 0 – то страница не выводится. Вот я и хочу передать эти значения в базу, в поле active. Подскажите как правильно это сделать.

P.S. И еще вопрос по теме, правильно ли я делаю активную и неактивную страницы. Может есть какой-то более оптимальный вариант?

  Ответить  
 
 автор: sim5   (17.09.2010 в 16:11)   письмо автору
 
   для: allforweb   (17.09.2010 в 15:48)
 

Через radiobox передать нельзя, такого не существует, да и через радиокнопку тоже самое, можно получить значение ее, или выбрано/не выбрано, а передать...
И в чем проблема то? Не можете узнать, что выбрано или?

  Ответить  
 
 автор: allforweb   (17.09.2010 в 16:52)   письмо автору
 
   для: sim5   (17.09.2010 в 16:11)
 

Ну вот я сделал два чекбокса.
<input type="checkbox" name="active" value="1" id="active" checked="checked" />
<input type="checkbox" name="active" value="0" id="noactive" />

Поле в таблице сделал tinyint
И делаю проверку:
if (isset ($_POST['active'])) {$active = $_POST['1'];}
if (isset ($_POST['noactive'])) {$active = $_POST['0'];}

Потом запись в БД
$result = mysql_query ("INSERT INTO static (active) VALUES (''$active')");

А выдает ошибку.

  Ответить  
 
 автор: sim5   (17.09.2010 в 17:42)   письмо автору
 
   для: allforweb   (17.09.2010 в 16:52)
 

А вы чего ожидали? Что видите:
<? $result mysql_query ("INSERT INTO static (active) VALUES (''$active')");
?
К тому же, у вас группа радиокнопок под именем active, с прописанными для них значениями, а вы что проверяете? if (isset ($_POST['active'])) - будет выполнено всегда, так как у вас есть выбранный по умолчанию.
Лучше в базе держать 0/1, ивертируя при каждой смене выбора.

  Ответить  
 
 автор: allforweb   (17.09.2010 в 23:01)   письмо автору
 
   для: sim5   (17.09.2010 в 17:42)
 

Ну вот так оно и делает, вбивает в базу 0 и все. А как инвертировать я не знаю. Только учу PHP.
Я вот такой код сделал:
<input type="checkbox" name="active" value="checkbox" id="1" checked="checked" />
<input type="checkbox" name="noactive" value="checkbox" id="0" />
И обработка такая:
if (isset ($_POST['active'])) {$active = $_POST['active'];}
if (isset ($_POST['noactive'])) {$active = $_POST['noactive'];}

То есть переменной active даю значние 1 или 0 и заношу в базу, но в базу идет только 0.
А поле в базе такое:
active int(10) Да (Ноль) 1 (По умолчанию)

  Ответить  
 
 автор: sim5   (18.09.2010 в 02:23)   письмо автору
 
   для: allforweb   (17.09.2010 в 23:01)
 

<?
$set 
= isset($_POST['active']) ? intval($_POST['active']) : 0;
echo 
$set;
?>
<form action="" method="post">
<input type="radio" name="active" value="0" <? echo !$set "checked" ""?>> No
<input type="radio" name="active" value="1" <? echo $set "checked" ""?>> Yes
<input type="submit" name="Send">
</form>

У вас это одноразовая операция? Почему INSERT?

  Ответить  
Rambler's Top100
вверх

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