Home > Archive > PHP Programming > August 2005 > Stumped with select function
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Stumped with select function
|
|
| supline 2005-08-30, 6:56 pm |
| I have a function that creates a select list:
function make_select_ns($name,$array,$persist){
$string = "<select name=\"$name\">";
$string .="<option selected>" . ucfirst($name) . "</option>\n";
if ($name == $array[0]){array_shift($array);} //removes duplicate when
table name equals 1st item in array
foreach ($array AS $value) {
if (($value == $persist) && is_string($persist)){$selected =
"selected";}
else {$selected = "";}
$string .= "<option $selected value='" .
str_pad($value,2,"0",STR_PAD_LEFT) . "'>$value</option>\n";
}
$string.="</select>";
print $string;
}
I have arrays for Months, Days, Years, Hours, and Minutes.
All of the arrays work as expected except for the minutes array which
starts at 0 and goes to 55 in increments of 5. Whenever this loads
after a post the value 0 is selected. What am I missing here? Why
does the zero seem to be causing me problems?
Let me know if you need more information.
Thanks,
-Mark
| |
| Marcin Dobrucki 2005-08-30, 6:56 pm |
|
supline wrote:
> I have a function that creates a select list:
>
> function make_select_ns($name,$array,$persist){
> $string = "<select name=\"$name\">";
> $string .="<option selected>" . ucfirst($name) . "</option>\n";
> if ($name == $array[0]){array_shift($array);} //removes duplicate when
> table name equals 1st item in array
> foreach ($array AS $value) {
> if (($value == $persist) && is_string($persist)){$selected =
> "selected";}
> else {$selected = "";}
> $string .= "<option $selected value='" .
> str_pad($value,2,"0",STR_PAD_LEFT) . "'>$value</option>\n";
> }
> $string.="</select>";
> print $string;
> }
>
> I have arrays for Months, Days, Years, Hours, and Minutes.
>
> All of the arrays work as expected except for the minutes array which
> starts at 0 and goes to 55 in increments of 5. Whenever this loads
> after a post the value 0 is selected. What am I missing here? Why
> does the zero seem to be causing me problems?
>
> Let me know if you need more information.
Alternative solution (with PEAR):
$f = new HTML_QuickForm('life_is_simple');
// assuming $array contains our selections and $selected is
// an array of selected values
$array = array_unique($array); // to remove duplicates
$my_select =& $f->addElement('select', 'my_name', 'Select me:', $array);
$my_select->setSelected($selected)
$f->addElement('submit',null,'Submit');
// or some othe way of displaying it
$f->display();
// end
//Marcin
|
|
|
|
|