Problems with matching on last element in array

Problems with matching on last element in array

am 09.04.2008 21:22:43 von jerrygarciuh

Hi folks,

As part of an app I am validating and repopulating user input from
check boxes. $responses is posted checkbox input, $answers is the
data used to create and recreate the checkboxes.

I am having the darned time figuring out why this works for every
single box in every single group of boxes EXCEPT for the last one.
Given that it does this persistently across sets of data I know I have
an error in my logic buy I can't find it.

I have dumped the data as I iterate over it and it is always exactly
what I expect.

Here is print_r() for each array:

// Here is $answers
Array
(
[0] => Construction
[1] => Healthcare
[2] => Cultural Economy
[3] => Manufacturing
[4] => Transportation
[5] => Oil and Gas

)

// Here is $responses
Array
(
[0] => Construction
[1] => Healthcare
[2] => Cultural Economy
[3] => Manufacturing
[4] => Transportation
[5] => Oil and Gas
)

// I have both methods I have used here:

// METHOD 1
foreach ($answers as $a) {
$iter++;
if ($responses) {
$ckd = (in_array($a, $responses)) ? 'checked' : '';
}
echo " id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
$this->id()'> $a
\n";
}


// so when in_array didn't work I also tried this with the same
results
// METHOD 2
foreach ($answers as $a) {
$iter++;
if ($responses) {
$ckd = '';
foreach ($responses as $r) {
if ($r == $a) {
$ckd = 'checked';
break;
}
}
}echo "$a is a; $ckd is ckd
";
echo " id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
$this->id()'> $a
\n";
}

Any thoughts?

TIA!


jg

Re: Problems with matching on last element in array

am 09.04.2008 23:35:13 von Jerry Stuckle

jerrygarciuh wrote:
> Hi folks,
>
> As part of an app I am validating and repopulating user input from
> check boxes. $responses is posted checkbox input, $answers is the
> data used to create and recreate the checkboxes.
>
> I am having the darned time figuring out why this works for every
> single box in every single group of boxes EXCEPT for the last one.
> Given that it does this persistently across sets of data I know I have
> an error in my logic buy I can't find it.
>
> I have dumped the data as I iterate over it and it is always exactly
> what I expect.
>
> Here is print_r() for each array:
>
> // Here is $answers
> Array
> (
> [0] => Construction
> [1] => Healthcare
> [2] => Cultural Economy
> [3] => Manufacturing
> [4] => Transportation
> [5] => Oil and Gas
>
> )
>
> // Here is $responses
> Array
> (
> [0] => Construction
> [1] => Healthcare
> [2] => Cultural Economy
> [3] => Manufacturing
> [4] => Transportation
> [5] => Oil and Gas
> )
>
> // I have both methods I have used here:
>
> // METHOD 1
> foreach ($answers as $a) {
> $iter++;
> if ($responses) {
> $ckd = (in_array($a, $responses)) ? 'checked' : '';
> }
> echo " > id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
> $this->id()'> $a
\n";
> }
>
>
> // so when in_array didn't work I also tried this with the same
> results
> // METHOD 2
> foreach ($answers as $a) {
> $iter++;
> if ($responses) {
> $ckd = '';
> foreach ($responses as $r) {
> if ($r == $a) {
> $ckd = 'checked';
> break;
> }
> }
> }echo "$a is a; $ckd is ckd
";
> echo " > id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
> $this->id()'> $a
\n";
> }
>
> Any thoughts?
>
> TIA!
>
>
> jg
>

What's the initial value of $iter? And what is the result of running
the code - i.e. the generated source?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Re: Problems with matching on last element in array

am 09.04.2008 23:37:28 von jerrygarciuh

On Apr 9, 4:35 pm, Jerry Stuckle wrote:
> jerrygarciuh wrote:
> > Hi folks,
>
> > As part of an app I am validating and repopulating user input from
> > check boxes. $responses is posted checkbox input, $answers is the
> > data used to create and recreate the checkboxes.
>
> > I am having the darned time figuring out why this works for every
> > single box in every single group of boxes EXCEPT for the last one.
> > Given that it does this persistently across sets of data I know I have
> > an error in my logic buy I can't find it.
>
> > I have dumped the data as I iterate over it and it is always exactly
> > what I expect.
>
> > Here is print_r() for each array:
>
> > // Here is $answers
> > Array
> > (
> > [0] => Construction
> > [1] => Healthcare
> > [2] => Cultural Economy
> > [3] => Manufacturing
> > [4] => Transportation
> > [5] => Oil and Gas
>
> > )
>
> > // Here is $responses
> > Array
> > (
> > [0] => Construction
> > [1] => Healthcare
> > [2] => Cultural Economy
> > [3] => Manufacturing
> > [4] => Transportation
> > [5] => Oil and Gas
> > )
>
> > // I have both methods I have used here:
>
> > // METHOD 1
> > foreach ($answers as $a) {
> > $iter++;
> > if ($responses) {
> > $ckd = (in_array($a, $responses)) ? 'checked' : '';
> > }
> > echo " > > id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
> > $this->id()'> $a
\n";
> > }
>
> > // so when in_array didn't work I also tried this with the same
> > results
> > // METHOD 2
> > foreach ($answers as $a) {
> > $iter++;
> > if ($responses) {
> > $ckd = '';
> > foreach ($responses as $r) {
> > if ($r == $a) {
> > $ckd = 'checked';
> > break;
> > }
> > }
> > }echo "$a is a; $ckd is ckd
";
> > echo " > > id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
> > $this->id()'> $a
\n";
> > }
>
> > Any thoughts?
>
> > TIA!
>
> > jg
>
> What's the initial value of $iter? And what is the result of running
> the code - i.e. the generated source?
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstuck...@attglobal.net
> ==================

Hi Jerry,

Thanks for the reply!

$iter = 0 initially.

Here is an example: http://www.novacvideo.org/registration/form.php?id=2

Checkbox output code looks like this:

value='Construction'checked onClick='setBoxes99()'> Construction

value='Healthcare'checked onClick='setBoxes99()'> Healthcare

value='Cultural Economy'checked onClick='setBoxes99()'> Cultural
Economy


value='Manufacturing'checked onClick='setBoxes99()'> Manufacturing
>
value='Transportation'checked onClick='setBoxes99()'>
Transportation

Oil and Gas

Thanks for your help!

jg

Re: Problems with matching on last element in array

am 09.04.2008 23:41:02 von jerrygarciuh

On Apr 9, 4:37 pm, jerrygarciuh wrote:
> On Apr 9, 4:35 pm, Jerry Stuckle wrote:
>
>
>
> > jerrygarciuh wrote:
> > > Hi folks,
>
> > > As part of an app I am validating and repopulating user input from
> > > check boxes. $responses is posted checkbox input, $answers is the
> > > data used to create and recreate the checkboxes.
>
> > > I am having the darned time figuring out why this works for every
> > > single box in every single group of boxes EXCEPT for the last one.
> > > Given that it does this persistently across sets of data I know I have
> > > an error in my logic buy I can't find it.
>
> > > I have dumped the data as I iterate over it and it is always exactly
> > > what I expect.
>
> > > Here is print_r() for each array:
>
> > > // Here is $answers
> > > Array
> > > (
> > > [0] => Construction
> > > [1] => Healthcare
> > > [2] => Cultural Economy
> > > [3] => Manufacturing
> > > [4] => Transportation
> > > [5] => Oil and Gas
>
> > > )
>
> > > // Here is $responses
> > > Array
> > > (
> > > [0] => Construction
> > > [1] => Healthcare
> > > [2] => Cultural Economy
> > > [3] => Manufacturing
> > > [4] => Transportation
> > > [5] => Oil and Gas
> > > )
>
> > > // I have both methods I have used here:
>
> > > // METHOD 1
> > > foreach ($answers as $a) {
> > > $iter++;
> > > if ($responses) {
> > > $ckd = (in_array($a, $responses)) ? 'checked' : '';
> > > }
> > > echo " > > > id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
> > > $this->id()'> $a
\n";
> > > }
>
> > > // so when in_array didn't work I also tried this with the same
> > > results
> > > // METHOD 2
> > > foreach ($answers as $a) {
> > > $iter++;
> > > if ($responses) {
> > > $ckd = '';
> > > foreach ($responses as $r) {
> > > if ($r == $a) {
> > > $ckd = 'checked';
> > > break;
> > > }
> > > }
> > > }echo "$a is a; $ckd is ckd
";
> > > echo " > > > id='answer_" . $iter . "_$this->id' value='$a' $ckd onClick='setBoxes
> > > $this->id()'> $a
\n";
> > > }
>
> > > Any thoughts?
>
> > > TIA!
>
> > > jg
>
> > What's the initial value of $iter? And what is the result of running
> > the code - i.e. the generated source?
>
> > --
> > ==================
> > Remove the "x" from my email address
> > Jerry Stuckle
> > JDS Computer Training Corp.
> > jstuck...@attglobal.net
> > ==================
>
> Hi Jerry,
>
> Thanks for the reply!
>
> $iter = 0 initially.
>
> Here is an example: http://www.novacvideo.org/registration/form.php?id=2
>
> Checkbox output code looks like this:
>
> > value='Construction'checked onClick='setBoxes99()'> Construction

> > value='Healthcare'checked onClick='setBoxes99()'> Healthcare

> > value='Cultural Economy'checked onClick='setBoxes99()'> Cultural
> Economy

>
> > value='Manufacturing'checked onClick='setBoxes99()'> Manufacturing
>
> > value='Transportation'checked onClick='setBoxes99()'>
> Transportation

> Oil and Gas
>
> Thanks for your help!
>
> jg


Arg! I found the error! There was a newline character in the
database! It was throwing everything in both test datasets!

Thanks Jerry, I had to look at the output to see it!