[Pieforms-commit] SF.net SVN: pieforms: [121] pieforms-php5/trunk/src/pieform/elements/select .php
Status: Alpha
Brought to you by:
oracleshinoda
From: <ora...@us...> - 2006-12-23 04:06:35
|
Revision: 121 http://svn.sourceforge.net/pieforms/?rev=121&view=rev Author: oracleshinoda Date: 2006-12-22 20:06:32 -0800 (Fri, 22 Dec 2006) Log Message: ----------- Updated to use the new APIs. Use Pieform::info so that people can acutally use it Modified Paths: -------------- pieforms-php5/trunk/src/pieform/elements/select.php Modified: pieforms-php5/trunk/src/pieform/elements/select.php =================================================================== --- pieforms-php5/trunk/src/pieform/elements/select.php 2006-12-23 04:05:37 UTC (rev 120) +++ pieforms-php5/trunk/src/pieform/elements/select.php 2006-12-23 04:06:32 UTC (rev 121) @@ -27,11 +27,11 @@ /** * Renders a dropdown list, including support for multiple choices. * - * @param array $element The element to render * @param Pieform $form The form to render the element for + * @param array $element The element to render * @return string The HTML for the element */ -function pieform_render_select($element, Pieform $form) { +function pieform_element_select(Pieform $form, $element) { if (!empty($element['multiple'])) { $element['name'] .= '[]'; } @@ -49,7 +49,7 @@ . ">\n"; if (!isset($element['options']) || !is_array($element['options']) || count($element['options']) < 1) { $result .= "\t<option></option>\n"; - log_warn('Select elements should have at least one option'); + Pieform::info('Select elements should have at least one option'); } if (empty($element['multiple'])) { @@ -59,6 +59,7 @@ if (isset($element['value'])) { $values = (array) $element['value']; } + // @todo use $global instead of $_POST else if (isset($_POST[$element['name']])) { $values = (array) $_POST[$element['name']]; } @@ -69,9 +70,11 @@ $values = array(); } } + $optionselected = false; foreach ($element['options'] as $key => $value) { if (in_array($key, $values)) { $selected = ' selected="selected"'; + $optionselected = true; } else { $selected = ''; @@ -79,24 +82,15 @@ $result .= "\t<option value=\"" . Pieform::hsc($key) . "\"$selected>" . Pieform::hsc($value) . "</option>\n"; } + if (!$optionselected && $values) { + Pieform::info('Invalid value for select "' . $element['name'] .'"'); + } + $result .= '</select>'; return $result; } -function pieform_get_value_js_select($element, Pieform $form) { - $formname = $form->get_name(); - $name = $element['name']; - if ($element['collapseifoneoption']) { - return " data['$name'] = document.forms['$formname'].elements['$name'].value;\n"; - } - return <<<EOF - var select = filter(function(option) { return option.selected; }, document.forms['$formname'].elements['$name'].options); - data['$name'] = map(function(o) { return o.value; }, select); - -EOF; -} - -function pieform_render_select_set_attributes($element) { +function pieform_element_select_set_attributes($element) { $element['collapseifoneoption'] = true; $element['rules']['validateoptions'] = true; return $element; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |