|
|
|
| Вопрос такой, есть форма для передачи данных в БД (добавление статической страницы). Все нормально получается кроме передачи данных через radiobox. У меня две кнопки, выбрать можно только одну и одна уже актинва по умолчанию.
Задумка такая: если стоит 1 – страница активна и показывается на сайте, если стоит 0 – то страница не выводится. Вот я и хочу передать эти значения в базу, в поле active. Подскажите как правильно это сделать.
P.S. И еще вопрос по теме, правильно ли я делаю активную и неактивную страницы. Может есть какой-то более оптимальный вариант? | |
|
|
|
|
|
|
|
для: allforweb
(17.09.2010 в 15:48)
| | Через radiobox передать нельзя, такого не существует, да и через радиокнопку тоже самое, можно получить значение ее, или выбрано/не выбрано, а передать...
И в чем проблема то? Не можете узнать, что выбрано или? | |
|
|
|
|
|
|
|
для: 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')");
А выдает ошибку. | |
|
|
|
|
|
|
|
для: allforweb
(17.09.2010 в 16:52)
| | А вы чего ожидали? Что видите:
<? $result = mysql_query ("INSERT INTO static (active) VALUES (''$active')");
| ?
К тому же, у вас группа радиокнопок под именем active, с прописанными для них значениями, а вы что проверяете? if (isset ($_POST['active'])) - будет выполнено всегда, так как у вас есть выбранный по умолчанию.
Лучше в базе держать 0/1, ивертируя при каждой смене выбора. | |
|
|
|
|
|
|
|
для: 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 (По умолчанию) | |
|
|
|
|
|
|
|
для: 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? | |
|
|
|