<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Komentarze do: Jeszcze lepsza walidacja formularzy</title>
	<atom:link href="http://www.reboo.pl/2009/02/26/jeszcze-lepsza-walidacja-formularzy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.reboo.pl/2009/02/26/jeszcze-lepsza-walidacja-formularzy/</link>
	<description>Web Developer Blog, którego autorem jest Robert Oleś</description>
	<lastBuildDate>Wed, 13 Oct 2010 17:03:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>Autor: efik</title>
		<link>http://www.reboo.pl/2009/02/26/jeszcze-lepsza-walidacja-formularzy/comment-page-1/#comment-63</link>
		<dc:creator>efik</dc:creator>
		<pubDate>Fri, 29 May 2009 12:13:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.reboo.pl/?p=238#comment-63</guid>
		<description>Rozwiązanie problemu kilku formularzy:

validation.js

				for (it in Validation.formFields)
				{
					if (Validation.formFields[it][0])
					{
						if (Validation.formFields[it][0][&quot;tag&quot;])
						{
							// efik begin
							validationAction = Validation.formFields[it][0][&quot;params&quot;].param1;
							commonId = formId.slice(0,-4);
							
							if(validationAction == commonId)
							{
							// efik end
								for(var i=0; i array
		(
			&#039;required&#039;		=&gt; array( &#039;rule&#039; =&gt; array(&#039;required&#039;) ),
			&#039;between&#039;		=&gt; array( &#039;rule&#039; =&gt; array(&#039;between&#039;, 2, 20)	),
			&#039;username&#039;		=&gt; array( &#039;rule&#039; =&gt; array(&#039;username&#039;) ),
			&#039;uniqueUsername&#039; =&gt; array( &#039;rule&#039; =&gt; array(&#039;uniqueUsername&#039;) ),
		),

		&#039;email&#039; =&gt; array
		(
			&#039;required&#039;		=&gt; array( &#039;rule&#039; =&gt; array(&#039;required&#039;) ),
			&#039;maxLength&#039; 	=&gt; array( &#039;rule&#039; =&gt; array(&#039;maxLength&#039;, 60) ),
			&#039;email&#039; 		=&gt; array( &#039;rule&#039; =&gt; array(&#039;email&#039;) ),
			&#039;uniqueEmail&#039; 	=&gt; array( &#039;rule&#039; =&gt; array(&#039;uniqueEmail&#039;) ),
		),


app_model.php

    function setValidateRules($validate_fields = null, $controller = null, $action = null)
    {
    	if($validate_fields)
			foreach ($validate_fields as $field)
				if (isset($this-&gt;validateRules[$field]))
				{
					$model = substr($controller, 0, strlen($controller) - 1);
					$model_action = Inflector::camelize($model . &#039;_&#039; . $action);
					$this-&gt;validate[$field][&#039;action&#039;] = array( &#039;rule&#039; =&gt; array(&#039;action&#039;, $model_action) );
					foreach($this-&gt;validateRules[$field] as $k=&gt;$v)
						$this-&gt;validate[$field][$k] = $this-&gt;validateRules[$field][$k];
				}
    }


app_controller.php

    function setValidateRules($validate_fields = null)
    {
	$this-&gt;User-&gt;setValidateRules($validate_fields, $this-&gt;params[&#039;controller&#039;], $this-&gt;params[&#039;action&#039;]);
    }



Użycie users_controller.php

	function register($referrer = null)
	{
		// ustawiamy które pola idą do tablicy walidacji
		$this-&gt;setValidateRules(array(&#039;username&#039;, &#039;email&#039;))</description>
		<content:encoded><![CDATA[<p>Rozwiązanie problemu kilku formularzy:</p>
<p>validation.js</p>
<p>				for (it in Validation.formFields)<br />
				{<br />
					if (Validation.formFields[it][0])<br />
					{<br />
						if (Validation.formFields[it][0]["tag"])<br />
						{<br />
							// efik begin<br />
							validationAction = Validation.formFields[it][0]["params"].param1;<br />
							commonId = formId.slice(0,-4);</p>
<p>							if(validationAction == commonId)<br />
							{<br />
							// efik end<br />
								for(var i=0; i array<br />
		(<br />
			&#8216;required&#8217;		=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;required&#8217;) ),<br />
			&#8216;between&#8217;		=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;between&#8217;, 2, 20)	),<br />
			&#8216;username&#8217;		=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;username&#8217;) ),<br />
			&#8216;uniqueUsername&#8217; =&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;uniqueUsername&#8217;) ),<br />
		),</p>
<p>		&#8216;email&#8217; =&gt; array<br />
		(<br />
			&#8216;required&#8217;		=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;required&#8217;) ),<br />
			&#8216;maxLength&#8217; 	=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;maxLength&#8217;, 60) ),<br />
			&#8216;email&#8217; 		=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;email&#8217;) ),<br />
			&#8216;uniqueEmail&#8217; 	=&gt; array( &#8216;rule&#8217; =&gt; array(&#8216;uniqueEmail&#8217;) ),<br />
		),</p>
<p>app_model.php</p>
<p>    function setValidateRules($validate_fields = null, $controller = null, $action = null)<br />
    {<br />
    	if($validate_fields)<br />
			foreach ($validate_fields as $field)<br />
				if (isset($this-&gt;validateRules[$field]))<br />
				{<br />
					$model = substr($controller, 0, strlen($controller) &#8211; 1);<br />
					$model_action = Inflector::camelize($model . &#8216;_&#8217; . $action);<br />
					$this-&gt;validate[$field]['action'] = array( &#8216;rule&#8217; =&gt; array(&#8216;action&#8217;, $model_action) );<br />
					foreach($this-&gt;validateRules[$field] as $k=&gt;$v)<br />
						$this-&gt;validate[$field][$k] = $this-&gt;validateRules[$field][$k];<br />
				}<br />
    }</p>
<p>app_controller.php</p>
<p>    function setValidateRules($validate_fields = null)<br />
    {<br />
	$this-&gt;User-&gt;setValidateRules($validate_fields, $this-&gt;params['controller'], $this-&gt;params['action']);<br />
    }</p>
<p>Użycie users_controller.php</p>
<p>	function register($referrer = null)<br />
	{<br />
		// ustawiamy które pola idą do tablicy walidacji<br />
		$this-&gt;setValidateRules(array(&#8216;username&#8217;, &#8216;email&#8217;))</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: admin</title>
		<link>http://www.reboo.pl/2009/02/26/jeszcze-lepsza-walidacja-formularzy/comment-page-1/#comment-61</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 24 May 2009 08:48:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.reboo.pl/?p=238#comment-61</guid>
		<description>Wiem, że niestety tak to działa, bo nie miałem też takiej potrzeby, żeby umieszczać i sprawdzać kilka formularzy na stronie. Jeśli jest na niej formularz logowania, używam do niego prostego skryptu, który tylko sprawdza tylko, czy oba pola są wypełnione. 
Postaram się to uwzględnić w następnej wersji.</description>
		<content:encoded><![CDATA[<p>Wiem, że niestety tak to działa, bo nie miałem też takiej potrzeby, żeby umieszczać i sprawdzać kilka formularzy na stronie. Jeśli jest na niej formularz logowania, używam do niego prostego skryptu, który tylko sprawdza tylko, czy oba pola są wypełnione.<br />
Postaram się to uwzględnić w następnej wersji.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: efik</title>
		<link>http://www.reboo.pl/2009/02/26/jeszcze-lepsza-walidacja-formularzy/comment-page-1/#comment-59</link>
		<dc:creator>efik</dc:creator>
		<pubDate>Thu, 21 May 2009 13:38:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.reboo.pl/?p=238#comment-59</guid>
		<description>Fajnie działa ta walidacja. Ale jest jeden denerwujący bug. Jeśli na stronie pojawią się dwa formularze to walidacja ich nie odróżnia.
Np. 
1) Strona z logowaniem i belka logowania. Klikamy submit na stronie a sprawdza nam dane z belki.
2) Teraz też obserwuje problem z modalboxem, jeśli mam okienko z logowaniem w modalboxie, a pod spodem jest strona z rejestracją. To po klinięciu w submit z modalboxa, wyświetla błędy i w modalboxie i na stronie tej pod spodem z rejestracją.</description>
		<content:encoded><![CDATA[<p>Fajnie działa ta walidacja. Ale jest jeden denerwujący bug. Jeśli na stronie pojawią się dwa formularze to walidacja ich nie odróżnia.<br />
Np.<br />
1) Strona z logowaniem i belka logowania. Klikamy submit na stronie a sprawdza nam dane z belki.<br />
2) Teraz też obserwuje problem z modalboxem, jeśli mam okienko z logowaniem w modalboxie, a pod spodem jest strona z rejestracją. To po klinięciu w submit z modalboxa, wyświetla błędy i w modalboxie i na stronie tej pod spodem z rejestracją.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

