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 = " ";
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" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> 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:[EMAIL PROTECTED]
>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php