[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: checkbox
_Dimarik__
пишу класс, позволяющий удобно работать с checkbox.
<?php

error_reporting(E_ALL & ~E_NOTICE);

////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
require_once("class.field.php");
class field_checkbox extends field
{
public $name;
// Размер
public $size;
//Отступ сверху
protected $top;
//Отступ слева
public $checked;
protected $left;
// Конструктор класса
function __construct($name,
$caption,
$checked = "checked",//Checked
$size = 30)
{
$this->name = $name;
$this->caption = $caption;
$this->checked = $checked;
$this->type = "checkbox";
}

// Метод, для возврата имени названия поля
// и самого тэга элемента управления

function get_html()
{
// Если элементы оформления не пусты - учитываем их
if(!empty($this->css_style))
{
$style = "style=\"".$this->css_style."\"";
}
else $style = "";
if(!empty($this->css_class))
{
$class = "class=\"".$this->css_class."\"";
}
else $class = "";

// Если определены размеры - учитываем их

// Формируем тэг

$tag = "<td><input $style $class
type=\"".$this->type."\"
name=\"".$this->name."\"
$this->checked></td></tr>";
$this->caption = "<tr><td>".$this->caption."</td>";
// Если поле обязательно, помечаем этот факт
echo $this->caption;
echo $tag;
}

}

?>

вроде бы по умолчанию я сделал так, что у меня checked, а вот куда запишется значение checked или не checked когда пользователь изменит с checked на неckecked (кстати, как это будет записано?) я не знаю. подскажите пожалуйста. может как-то класс надо малость подправить?



Спустя 59 секунд (20.07.2010 - 17:31) _Dimarik__ написал(а):
это дело будет передаваться методом POST и помещаться в базу данных

Спустя 2 часа, 25 секунд (20.07.2010 - 19:31) KaFe написал(а):
Не тестил wink.gif , но подправил

<?php
require_once("class.field.php");
class field_checkbox extends field
{
public $name;
public $size;
protected $top;
public $checked;
protected $left;
function __construct($name, $caption, $checked = "checked", $size = 30)
{
$this->name = $name;
$this->caption = $caption;
$this->checked = $checked;
$this->type = "checkbox";
}

public function get_html()
{
if($this->css_style) $style = ' style="'.$this->css_style.'" ';
if($this->css_class) $class = ' class="'.$this->css_class.'" ';
$tag = '<td><input '.$style.$class.'type="'.$this->type;
$tag.= ' name="'.$this->name.'" '.$this->checked.'</td></tr>';
$this->caption = '<tr><td>'.$this->caption.'</td>';
echo $this->caption;
echo $tag;
}

/*
* Функция для снятия флажка с checkbox
*/

public function unchecked()
{
unset($this->checked)
}
}

?>

Спустя 55 минут, 8 секунд (20.07.2010 - 20:26) sergeiss написал(а):
А зачем целый класс создавать для чек-бокса?

Спустя 12 минут, 52 секунды (20.07.2010 - 20:39) _Dimarik__ написал(а):
он много раз будет использоваться.
а чтоб в другом файле мне просмотреть значение этой переменной, надо так сделать???
<?php
echo "$$_SERVER['objShow']->checked";
?>

выдаёт ошибки:
Notice: Undefined variable: objShow in C:\wamp\www\1.php on line 2

Notice: Trying to get property of non-object in C:\wamp\www\1.php on line 2

Спустя 2 минуты, 41 секунда (20.07.2010 - 20:42) Ice написал(а):
Действительно, зачем? Не то, что для чекбокса создавать, а вообще зачем создавать класс для вывода ХТМЛ? Плюсы-минусы? Мне кажется, от делать нечего.

Спустя 11 минут, 31 секунда (20.07.2010 - 20:53) _Dimarik__ написал(а):
хорошо. сделаю просто в html. подскажите только пожалуйста. мне надо записать в переменную, checked или unceched. как это сделать?
if (POST[checkbox1'] == "unchecked")
echo "не выбран";
else
echo "выбран";
так?

Спустя 2 минуты, 36 секунд (20.07.2010 - 20:56) sergeiss написал(а):
_Dimarik__ - если ты хочешь проверить состояние, но не знаешь, как это сделать, то выполни при входе в скрипт такой набор команд:

echo '<pre>'; var_dump( $_POST ); echo '</pre>';

Посмотри, что у тебя есть в ПОСТе, связанное с чек-боксом (естественно, после сабмита формы wink.gif), и именно эту величину и проверяй! smile.gif

А твой код проверки не правильный.

Спустя 10 минут, 22 секунды (20.07.2010 - 21:06) sergeiss написал(а):
И еще.

Цитата (_Dimarik__ @ 20.07.2010 - 21:39)
echo "$$_SERVER['objShow']->checked";

В этом коде совершенно не нужны кавычки (просто излишне), и не нужны 2 знака доллара! Второй знак совершенно меняет смысл всего выражения. Это получаются "переменные переменные", только ты их тут, как я понимаю, не используешь.

Спустя 12 минут, 33 секунды (20.07.2010 - 21:19) Ice написал(а):
Цитата (_Dimarik__ @ 20.07.2010 - 21:53)
хорошо. сделаю просто в html. подскажите только пожалуйста. мне

Имя чекбокса известно? известно. смотришь в ПОСТ. Если в нем есть ключ, такой же как имя чекбокса, значит чекбокс гарантированно чекед. Если нет - унчекед.

Спустя 43 минуты, 37 секунд (20.07.2010 - 22:02) _Dimarik__ написал(а):
if(empty($_POST['checkbox1') == false)
$i = true;
else
$i=false;

так? я яваскрипт пока что не знаю(

Спустя 4 минуты, 15 секунд (20.07.2010 - 22:07) Ice написал(а):
Причем тут яваскрипт и ПОСТ?

Спустя 4 минуты, 41 секунда (20.07.2010 - 22:11) _Dimarik__ написал(а):
if(empty($_POST['checkbox1') == false)
$i = true;
else
$i=false;

ну так ведь можно или нет?

Спустя 1 минута, 4 секунды (20.07.2010 - 22:12) Ice написал(а):
Здесь ошибка smile.gif найдешь? smile.gif

Спустя 2 минуты, 24 секунды (20.07.2010 - 22:15) _Dimarik__ написал(а):
я понял. скобку не закрыл. поздно уже))))ошибся)

Спустя 1 час, 21 минута, 35 секунд (20.07.2010 - 23:36) KaFe написал(а):
_Dimarik__ Ты вообще не читаешь??? А??? Читай нафиг книжку или сайты (php.su,http://www.softtime.ru/bookphp/help.php) , а потом уже хватайся за ООП и всякое там чудо PHP девелопинга. mad.gif

Извините, но посмотрел его другой пост http://phpforum.ru/index.php?showtopic=31452&hl=, и тут, это вообще.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.