Проблема в input type="checkbox"
В каталоге товаров мы хотим пометить определённый товар как лучший “top”.
Помечать товар я решил с помощью type="checkbox
Всё сделали, но не легко запомнить то какой товар имеет статус “top” и для этого нам нужно сделать так чтобы <input type="checkbox" name="top" value="1"> сохраняла значение, которое ей задали и так чтобы если я, потом поменяю значение оно тоже сохранялось.
Значение берётся из $f[top]
Помогите решить проблему.
На чём всё это делается? И что должно сохраняться в случае, если потом его значение меняется?
добавляешь ещё один параметр... top и всё...
если ты у себя нажал на чекбокс а после на кнопочку "сохранить изменения", то просто в мускуль запрос добавляешь апдейт и всё)
Цитата:
но не легко запомнить то какой товар имеет статус “top”
Цитата:
Значение берётся из $f[top]
Либо я чего-то не понимаю, либо я чего-то не понимаю, либо одно из трех...
Цитата:
<input type="checkbox" name="top" value="1"> сохраняла значение, которое ей задали и так чтобы если я, потом поменяю значение оно тоже сохранялось.
В этом случае надо использовать <input type="hidden" name="top" value="1"> т.к. это поле сохранит любое значени не обращая никакого внимания на действия пользователя (кроме перезагрузки страницы)
Делаю вот так.
Но и опять не могу сделать что хочу так как.
Я вывожу это вот так.
Код:
$result= mysql_query("SELECT * FROM " . PREFIX . "_hardware");
while ($f = mysql_fetch_array($result))
{
<input type="checkbox" name="top" value="1" <? if($f[top]) echo "checked"; ?> >
}
while ($f = mysql_fetch_array($result))
{
<input type="checkbox" name="top" value="1" <? if($f[top]) echo "checked"; ?> >
}
Ошибка такая Parse error: parse error, unexpected '<'
как можно исправить это?
если делать через
echo"
<input type=\"checkbox\" name=\"top\" value=\"1\" <? if($f[top]) echo "checked"; ?> >
";
то <? if($f[top]) echo "checked"; ?> не будет работать.
Вот такая беда :)
если делать через
echo"
<input type=\"checkbox\" name=\"top\" value=\"1\" <? if($f[top]) echo "checked"; ?> >
";
то <? if($f[top]) echo "checked"; ?> не будет работать.
[/QUOTE]
Ты чего, любезный? :) Так в этом вся беда? :D
Зачем ты в тексте php ещё пишешь <? ... ?> ???
Код:
$checked = $f[top] ? "checked" : "";
echo "<input type=\"checkbox\" name=\"top\" value=\"1\" {$checked}>";
echo "<input type=\"checkbox\" name=\"top\" value=\"1\" {$checked}>";
Всё, болше там ничего выдумывать не надо.
Можешь даже для таких случаев написать ф-цию и положить её в библиотеку, которую подключаешь всегда:
Код:
function GetChecked(&$Value){
return !is_null($Value) && $Value != 0 ? " checked" : "";
}
return !is_null($Value) && $Value != 0 ? " checked" : "";
}
Соответственно, в твоём случае всё это может с нею выглядеть так:
Код:
echo "<input type=\"checkbox\" name=\"top\" value=\"1\" ". GetChecked($f['top']) .">";
Код:
printf ("<input type=\"checkbox\" name=\"top\" value=\"1\"%s>", GetChecked($f['top']));
или, если не хочешь ф-ю задействовать, то
Код:
printf ("<input type=\"checkbox\" name=\"top\" value=\"1\"%s>", $f['top'] ? " checked" : "");
Большое спасибо.:)