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 <[EMAIL PROTECTED]> 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
> [EMAIL PROTECTED]
> Your Mac Intelligence Resource
> +--------------------------------------------+
> W: http://www.macagent.com/
> E: [EMAIL PROTECTED]
>
> --
> 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