<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web 3.0, 6 Bladed Razors, 7 Minute Abs &#187; Hierarchical Select</title>
	<atom:link href="http://www.zachleat.com/web/tag/hierarchical-select/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zachleat.com/web</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 01:59:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Conservative Design Example: Hierarchical Options</title>
		<link>http://www.zachleat.com/web/2007/03/23/conservative-design-example-hierarchical-options/</link>
		<comments>http://www.zachleat.com/web/2007/03/23/conservative-design-example-hierarchical-options/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 06:52:12 +0000</pubDate>
		<dc:creator>Zach Leatherman</dc:creator>
				<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Conservative Design]]></category>
		<category><![CDATA[Hierarchical Select]]></category>

		<guid isPermaLink="false">http://www.zachleat.com/web/2007/03/23/conservative-design-example-hierarchical-options/</guid>
		<description><![CDATA[Welcome, one and all, to the second installment of actual code examples for the Conservative Design series. The decision was made (by me) to rename the component in question from the original Hierarchical Select to Hierarchical Options, due to the fact that the hierarchy can consist of any multiple option component, and is not limited [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome, one and all, to the second installment of actual code examples for the Conservative Design series.  The decision was made (by me) to rename the component in question from the original Hierarchical Select to Hierarchical Options, due to the fact that the hierarchy can consist of any multiple option component, and is not limited to just a select.  And to this face, this particular component was documented in the original post entitled <a href="http://www.zachleat.com/web/2007/02/22/conservative-design-hierarchical-select-boxes/">Conservative Design: Hierarchical Select Boxes</a>.</p>
<p><a href='http://www.zachleat.com/Projects/valdi/hierarchicalOptions.html' title='Hierarchical Options'><img src='http://www.zachleat.com/web/wp-content/uploads/2007/03/hierarchical.gif' alt='Hierarchical Options' /></a><br />
Click the image above to go to the example.</p>
<p>Notes on the example: The Tree structure is as follows:</p>
<ul>
<li>Primary
<ul>
<li>Secondary</p>
<ul>
<li>Tertiary</p>
<ul>
<li>Quaternary</p>
<ul>
<li>Quinary</li>
</ul>
</li>
</ul>
</li>
<li>2nd Tertiary (is a static element that doesn&#8217;t hide)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>So without further adieu or out of place french, what do we have?  3 out of 4 requirements and 1 of 2 luxury items.</p>
<ul>
<li>Handles any number of select elements in a linear or tree (luxury item) like structure.</li>
<li>Child select elements are optional based on parent selection.  Can hide entire div element or display a message stating no options are available.</li>
<li>Compliant with the Reset button.</li>
<li>Right now only loads from standard HTML markup (not yet from JavaScript or JSON or an XMLHTTPRequest)</li>
<li>Only supports Select elements for now, in the future should be abstracted to support Checkbox Lists or any multiple option component.</li>
</ul>
<p><strong>Outstanding Bugs</strong>:</p>
<ul>
<li>Opera button doesn&#8217;t reset properly with Reset Button</li>
<li>Clicking off of the default and then back onto the default has the original selections downstream (but doesn&#8217;t propagate more than one level)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.zachleat.com/web/2007/03/23/conservative-design-example-hierarchical-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conservative Design: Hierarchical Select</title>
		<link>http://www.zachleat.com/web/2007/02/22/conservative-design-hierarchical-select-boxes/</link>
		<comments>http://www.zachleat.com/web/2007/02/22/conservative-design-hierarchical-select-boxes/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 03:31:04 +0000</pubDate>
		<dc:creator>Zach Leatherman</dc:creator>
				<category><![CDATA[Interface Design]]></category>
		<category><![CDATA[Conservative Design]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Hierarchical Select]]></category>

		<guid isPermaLink="false">http://www.zachleat.com/web/2007/02/22/conservative-design-hierarchical-select-boxes/</guid>
		<description><![CDATA[This is a post in a series entitled Conservative Design Patterns for Form Elements. For now, I&#8217;ll start off with an easy web component that a lot of you have probably already had some experience with. But, strangely enough, it is not included in any of the JavaScript libraries that are out there, that I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>This is a post in a series entitled <a href="http://www.zachleat.com/web/2007/02/22/conservative-design-patterns-for-form-elements/">Conservative Design Patterns for Form Elements</a>.</p>
<p>For now, I&#8217;ll start off with an easy web component that a lot of you have probably already had some experience with.  But, strangely enough, it is not included in any of the JavaScript libraries that are out there, that I&#8217;ve seen.  If you know of one, go ahead and post it in the comments.</p>
<p><strong>Hierarchical Select Boxes</strong> (sometimes called Dynamic Select Boxes if you&#8217;re doing a web search)</p>
<p>Behavior: 2 or more select boxes working in parallel, where selection of an option in a parent dynamically adjusts the options of the child.</p>
<p>Screenshot (Prior to any selection):<br />
<img src='http://www.zachleat.com/web/wp-content/uploads/2007/02/hierselects1.jpg' alt='Prior to any selection' /></p>
<p>Screenshot (After an option is chosen in the first select box):<br />
<img src='http://www.zachleat.com/web/wp-content/uploads/2007/02/hierselects2.jpg' alt='After a selection is made' /></p>
<p>Minimum Requirements for Acceptable Feature Set:</p>
<ul>
<li>Must be able to handle any (reasonable) number of select boxes in a linear structure: parent elements only have one child.</li>
<li>Child select elements can be optional depending on parent selection.  Maybe a continent doesn&#8217;t have any countries, so don&#8217;t display a child select element.  It would be nice to have a visual indicator showing whether or not a parent option had children (triangle, folder(?), arrow or other customizable icon).</li>
<li>Must have functionality that allows it to be reset with the form reset button, as <a href="http://www.mattkruse.com/javascript/dynamicoptionlist/">Matt Kruse has done (Example 3)</a>.</li>
<li>Load options in child select&#8217;s dynamically from multiple data sources (describe in <a href="http://www.bobbyvandersluis.com/articles/unobtrusivedynamicselect.php">raw HTML code</a>, local JS file, remote JSON object or XML file using an XMLHTTPRequest)</li>
</ul>
<p>Luxury Feature Set:</p>
<ul>
<li>Must be able to nest select elements in a tree structure: selecting an option in a parent element could modify 2+ child select elements.</li>
<li>Could be able to modify the options for any element that displays options (Select1 or Select+ as described in the <a href="/web/2007/02/22/conservative-design-patterns-for-form-elements/">Conservative Design Post</a>: Checkbox Group, Radio Group, Select Single or Multiple)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.zachleat.com/web/2007/02/22/conservative-design-hierarchical-select-boxes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
