Re: Re: Generating forms using OOP

From: Date: Tue, 10 Dec 2002 06:43:48 +0000
Subject: Re: Re: Generating forms using OOP
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-127604@lists.php.net to get a copy of this message
Thanks scott, This might definatly come in handy later as i am new too OOP in PHP. I am now trying to generate a set of radio boxes... but without succes yet... Best regards, Davy Obdam mailto:info@davyobdam.com Scott Hurring wrote:
Here's an OOP function from an HTML class i wrote to simplify forms myself -- It might come in handy for ya later :-) // Single Select dropdown box /* @params $name String Name of this form element $items Array Array of items to place in this select box $selected String Single item to select Example params are: $name = "form[xyz]"; $items = array( "one" => "First element", "two" => "Second element", "three" => "Third thingy"); $selected = "two"; Output HTML will be: <SELECT MULTIPLE NAME="form[xyz]"> <OPTION VALUE="one">First element <OPTION VALUE="two" SELECTED>Second element <OPTION VALUE="three">Third thingy </SELECT> */ function select($name, $items, $selected='', $misc='') { $text = "<select name=\"{$name}\" {$misc}>"; $end = "</select> <!-- HTML: end select \"{$name}\" -->\n"; // What to indent multi-line items with $indent = "&nbsp;&nbsp;&nbsp;&nbsp;"; if (!is_array($items) || !count($items)) return ($text . $end); while (list($k,$v) = each($items)) { // If there's a linebreak in the value, split the lines into separate // OPTION lines, and indent the add'l lines $v = preg_replace("/\n/", "\n{$indent}", $v); $words = split("\n", $v); $already_selected = 0; foreach ($words as $word) { $text .= "\t<option value=\"$k\" "; // Using !empty($k) will NOT allow "value=0" to be selected, which is bad // For multi-line items, only put SELECTED on the first line if ((!$already_selected) && ("$selected" == "$k") && ($selected != '')) { $text .= "SELECTED"; $already_selected = 1; } $text .= ">{$word}"; $text .= "</option>\n"; } } $text .= $end; return $text; } -- Scott Hurring Systems Programmer EAC Corporation scott (*) eac.com -- "Davy Obdam" <info@davyobdam.com> wrote in message news:3DF13633.3080408@davyobdam.com...
Hi People, I ve just started with some OOP programming in PHP and now i have to build a set of classes that can generate a html form.. But i have a problem with the <select><option></option></select> thing.... I hope someone can help me here or give me some pointers,... any help is apreciated. Here is a part of my code : class selectField extends formElement { //Constructor function selectField($name, $value) {
       formElement::setName($name);
       formElement::setValue($value);
} function generateSelectField() {
       $theOutput = "<select name=\"".$this->name."\">\n";
       foreach($this->value as $key=>$val) {
           $theOutput .= "<option
value=\"".$this->value."\">".$this->value."</option>\n";
       }
       $theOutput .= "</select>\n";
       Return $theOutput;
} } This is how i call the Object: $test[] = "Test1"; $test[] = "Test2"; $test[] = "Test3"; $test[] = "Test4"; $test[] = "Test5"; $select = new selectField("testje", $test); echo$select->generateSelectField(); But all i get is a select box with the word Array in it 5 times...Thanks for your time... Best regards, Davy Obdam mailto:info@davyobdam.com


« previous php.general (#127604) next »