From 7c9349e23f337e818c7f6fb922a54360515ac0d2 Mon Sep 17 00:00:00 2001
From: Christian Schneider
Date: Fri, 23 Nov 2007 13:08:17 +0000
Subject: Only split selected options on comma for multi-select
---
it_html.class | 2 +-
tests/it_html.t | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/it_html.class b/it_html.class
index f7bff0e..35eb273 100644
--- a/it_html.class
+++ b/it_html.class
@@ -347,7 +347,7 @@ function select($tags, $options, $selected = null)
}
}
- $selected = (isset($selected) && !is_array($selected)) ? explode(',', $selected) : (array)$selected;
+ $selected = ($tags['multiple'] && is_string($selected)) ? explode(',', $selected) : (array)$selected;
$html = "";
foreach($options as $value => $option)
diff --git a/tests/it_html.t b/tests/it_html.t
index e87df48..b560ed1 100755
--- a/tests/it_html.t
+++ b/tests/it_html.t
@@ -38,6 +38,18 @@ is(
"link tag with data"
);
+is(
+ it::replace('\n+\s*' => "", select('name' => "gna", 'multiple' => true, '1:foo,2:bar', '1,2')),
+ '',
+ "select tag with multiselect",
+);
+
+is(
+ it::replace('\n+\s*' => "", select('name' => "gna", array("1" => "foo", "2" => 'bar', '1,2' => "qux"), '1,2')),
+ '',
+ "link tag without multiselect",
+);
+
# XML generation
unset($GLOBALS['it_html']);
new it_html(array('htmltype' => "xhtml", 'tags' => "xmltest"));
--
cgit v1.2.3