• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Server or Client side validation?

#1
[eluser]Mr Lazy[/eluser]
Hi,

I have a one field form using the CI validation class, and I must say it is neat. But I also have a page in my application with a large number of checkboxes on it that are dynamicaly displayed based upon data from the database.

My question is, if the validation fails on that page, how do I persist the data? I cannot define it in the controller before hand as I do not know what checkboxes will be on that page.

I am thinking of using client-side (jQuery) validation that can do the validation and there will be no screen refresh, so on screen data persistence will not become an issue.

I am interested to know what experienced CI/PHP folks think about this.

Thanks,
Lazy

#2
[eluser]Yash[/eluser]
I use normal validation and not jquery.

You can try ...

#3
[eluser]xwero[/eluser]
javascript validations should always be backed up by server side validation for the obvious reason.

If you keep the checkboxes in a database you also have the relations between the checkboxes so you can do a check on the posted values and see if it aren't orphan values. But instead of a warning i would complete the the relations, this makes the user feel less stupid and it saves you the trouble coming up with relation warnings.

#4
[eluser]Mr Lazy[/eluser]
Sorry, maybe I am being a little thick, if I don't know which (or how many) checkboxes there are on the page, how do I re-populate them after screen refresh?

Thanks,
Lazy

#5
[eluser]xwero[/eluser]
I created a simple function to do this
Code:
function form_checked($field)
{
    return (isset($_POST[$field]))?' checked="checked"':'';
}
But you can create custom form_checkbox function that does the same if you like to use the form helper to generate your form fields.

#6
[eluser]Colin Williams[/eluser]
Why don't you know that, Mr Lazy? Is your app just too lazy to care?

#7
[eluser]Mr Lazy[/eluser]
Thanks xwero, neat little function. I guess the CI validation vs jQuery decision I am trying to make is also to do with the error message. I guess both forms of validation will be able to display an error message?

Thanks,
Lazy

#8
[eluser]Phil Sturgeon[/eluser]
There is no choice sadly, you must have Server validation or your data will have as much integrity as a US politician.

If its one or the other, use CodeIgniter (server-side) validation. If you want it to look pretty, use jQuery validation as well as CodeIgniter.

Not much point having a pretty set of error messages if the user can just turn it off and break your site.

I prefer a mix something like:

Code:
[removed]
$(function() {
    $('p.hidden').slideDown();
});
[removed]

<? if ($this->validation->error_string): ?>
    <p class="error hidden">&lt;?=$this->validation->error_string;?&gt;</p>
</p>

Obviously this assumes error is a big red box and hidden is display:none;

Might not be as pretty but simplifies things and means I only have one set of rules to worry about.

#9
[eluser]miky4e[/eluser]
But, Server AND Client validation not?

#10
[eluser]gRoberts[/eluser]
I have both. All of my forms have server side validation and then I add client side as a feature. This means that if javascript is disabled, the validation still occurs on postback.


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.