CodeIgniter Forums
Is this a CI 1.7 Form validation Helper BUG? - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: Is this a CI 1.7 Form validation Helper BUG? (/showthread.php?tid=13541)



Is this a CI 1.7 Form validation Helper BUG? - El Forum - 11-26-2008

[eluser]mindprojects[/eluser]
All right guys,i'm not pretty sure,but using the new form validation functions(eg. set_select)something changed from previous version(1.6.3) and i'm not sure if it's a small bug.
What i was doing to repopulate from select boxes in 1.7,while using pagination was :

1) set form data in POST values(eg $_POST['select name'] = selected value
2) set $this->validation->set_select('form_name','option value') into the select element;

This trick was working till 1.6.3 release,as it should be,but bothing to do with the new 1.7 set_select.

Then i discovered the problem:
This is the code from form_helper
Code:
function set_select($field = '', $value = '', $default = FALSE)
    {
        $OBJ =& _get_validation_object();


        if ($OBJ === FALSE)
        {
            if ( ! isset($_POST[$field]))
            {
                if (count($_POST) === 0)
                {
                    return ' selected="selected"';
                }
                return '';
            }

I simply changed this into this:
Code:
function set_select($field = '', $value = '', $default = FALSE)
    {
        $OBJ =& _get_validation_object();


        if ($OBJ)
        {
            if ( ! isset($_POST[$field]))
            {
                if (count($_POST) === 0)
                {
                    return ' selected="selected"';
                }
                return '';
            }

I would like someone to reply for this,
thanks
Marco


Is this a CI 1.7 Form validation Helper BUG? - El Forum - 01-03-2009

[eluser]dimethroxy[/eluser]
thanks you for this! this actually fixed the set_select


Is this a CI 1.7 Form validation Helper BUG? - El Forum - 03-23-2009

[eluser]scottzirkel[/eluser]
I'm having the same problem in 1.7.1. I tried your fix, but I got a function on non-object error with the $OBJ object.

I fixed it by changing this line in form_helper.php:

Code:
if (count($_POST) === 0)

to this:

Code:
if(!empty($_POST))

While those SHOULD do the same thing, they are not. Presumably since POST data is set by default.

Hope that helps anyone else looking for solutions.


Is this a CI 1.7 Form validation Helper BUG? - El Forum - 03-23-2009

[eluser]TheFuzzy0ne[/eluser]
I'm not sure what the problem is. However, the check to see if the $OBJ === FALSE is correct. That section of code is run if the validation object has not been instantiated. Please could you post your controller code?