Re: Drawing checkboxes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A few notes that may help you.....

first.....on strstr....i would use strpos instead for a simple check....so....
>         if(strstr($default, $values[$i]['id'])) {
>             $field .= ' CHECKED';
>         }
would become....
>         if(strpos($default, $values[$i]['id']) !== false) {
>             $field .= ' CHECKED';
>         }
note the double equals...not a mistake....see note in php docs about
that...the reason for using strpos is that strstr is a much longer
check than needed.....anyways...on to your problem.....

there is a slight logic issue (i think....)
lets say your values are....
$values = "foo bar|foo";
this test (i think) should return true....
if(strstr("foo", $values)) because it just looks for the first
occurence of the string....


to fix this.....

I would change it to this.....
          $checkValues = array()
         $checkValues = explode("|", $values[$i]['id']);
         if(in_array($default, $checkValues)) {
             $field .= ' CHECKED';
         }

there may be a better/faster way to do this, but this should work

hope this helps,
chris



On Tue, 07 Dec 2004 15:10:59 -0500, Mike <mike@xxxxxxxxxxxx> wrote:
> 
> 
> Hello,
> 
> I am having a hard time figuring this one out, maybe someone here (with
> fresh eyes) can offer a suggestion?
> 
> Here is the function...
> 
> // Draw Checkbox Menu
> function draw_checkbox_menu($name, $values, $default = false, $parameters =
> false) {
> 
>     for ($i=0; $i<sizeof($values); $i++) {
>         $field .= '<input type="checkbox" name="'.$name.'" value="' .
> $values[$i]['id'] . '"';
>         if(strstr($default, $values[$i]['id'])) {
>             $field .= ' CHECKED';
>         }
>         $field .= '> ' . $values[$i]['text'] . '<br>
>         ';
>     }
> 
>     return $field;
> }
> 
> This function is passed the name of the checkbox list($name), the values
> that are available($values = array) along with the ones that should be
> checked ($default). Parameters too , but not important.
> 
> The problem is this. The Values are formatted like this...
> 
> value1|value2|value3...etc...
> 
> I use the strstr() function to check against the $default so I can check it
> if so.
> 
> Well it works great..BUT, lets say the product has a category of "Coffee
> Pots", but the one of the values available is "Coffee".
> 
> In this case both "Coffee" AND "Coffee Pots" get checked when only "Coffee
> Pots" should.
> 
> What can I do to this function eliminate this?
> 
> Thanks
> 
> +--------------------------------------------+
> Mike Yrabedra
> Mac@xxxxxxxx
> Your Mac Intelligence Resource
> +--------------------------------------------+
> W: http://www.macagent.com/
> E: agenty@xxxxxxxxxxxx
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux