Suren97 Ответов: 1

Php: как добавить элемент ввода стиля через класс


У меня есть форма класса, которая имеет методы ' write(), attr($key,$value) и addClass($array). Метод write() выводит входной элемент` type="$this->type", метод attr($key,$value) дает атрибут этому входному элементу, а метод addClass($array) дает стиль этому входному элементу. Я написал методы write() и attr($key,$value), все нормально, это работает, но у меня есть некоторые проблемы с методом addClass($array).
Например`
$f = new TextElement();
$f->attr("value","#97BEF0");
$f->addStyle(array("color"=>"red", "font-size"=>"20px"));
$f->write();


Кстати, у меня также есть класс TextElement, который наследуется от класса Form.

Что я уже пробовал:

class Form{
	public $type;
	public $attr = "";
	public $arr = array();
       //print input
	function write(){
		print "<input type='$this->type' $this->attr style='$this->arr'>";
	}
        //add attribute
	function attr($key,$value){
		$this->attr .= "$key='$value'";
	}
        //add style
	function addStyle($array){
		for($i = 0; $i < count($array); $i++){
			$this->arr = $array[$i];
		}
	}
}

class TextElement extends Form{
	function __construct(){
		$this->type = "text";
	}
}

$p = new TextElement();
$p->attr("value","#97BEF0");
$p->addStyle(array("color"=>"red", "font-size"=>"20px"));
$p->write();


Итак, моя проблема заключается в методе addStyle($array), как я должен давать параметры массиву? Это дает мне ошибку` Nitice: преобразование массива в строку.

1 Ответов

Рейтинг:
0

W∴ Balboos, GHB

Класс стиля-это часть CSS, которая работает на HTML.
Класс, на который вы ссылаетесь в PHP, совершенно другой, описывающий "объект".

Если вы хотите добавить класс через php, самый простой способ-это при рендеринге кода поместить в него атрибут class=....

Например:

<?php
  ECHO "<div class='cssStyle'> some content </div>";
?>
У вас должен быть класс 'cssStyle', определенный в php-файле, который отправляется в браузер либо непосредственно, либо как часть таблицы стилей.

Доучиться: CSS3[^] Скорее всего, вам также придется изучать HTML и php.