Page 1 of 1

iterate through form elements

Posted: Wed Oct 25, 2006 2:04 pm
by hc
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


I have the following Form Elements. I need to grab which row is checked, and the display the appropriate information on the screen. So, if chk with value 1 and 3 are checked, I want to grab the associated values and display them to the screen? How could I accomplish this with PHP? I think a foreach, but I am not getting the syntax right. Any help is appreciated . Thanks alot

[syntax="html"]<tr>
	<td><input checked=checked type=checkbox name='chk' value='1'></td>
	<td><input type=hidden name='title_1' value=''></td>
	<td><input type=hidden name='fname_1' value='Andrew'>Andrew</td>
	<td><input type=hidden name='lname_1' value='Akins'>Akins</td>
	<td><input type=hidden name='taxid_1' value='xxxxxxxx'>260635446</td>
	<td><input type=hidden name='lastlogon_1' value='10/25/2006''>10/25/2006</td>

	<td><input type=hidden name='username_1' value='aakins@smcvt.edu'>aakins@smcvt.edu</td>
	<td><input type=hidden name='password_1' value='aakins'>aakins</td>
	<td><input type=hidden name='mname_1' value=''>&nbsp;</td>
	<td><input type=hidden name='active_1' value='true'>true</td>
	<td><input type=hidden name='suffix_1' value=''></td>
	<td><input type=hidden name='status_1' value='1'>1</td>
	<td><input type=hidden name='inserted_1' value='oppExport'>oppExport</td>

</tr>
<tr>
	<td><input checked=checked type=checkbox name='chk' value='2'></td>
	<td><input type=hidden name='title_2' value=''></td>
	<td><input type=hidden name='fname_2' value='Albert'>Albert</td>
	<td><input type=hidden name='lname_2' value='Battista'>Battista</td>
	<td><input type=hidden name='taxid_2' value='xxxxxxxx'>579648564</td>
	<td><input type=hidden name='lastlogon_2' value='10/25/2006''>10/25/2006</td>

	<td><input type=hidden name='username_2' value='albattista12@comcast.net'>albattista12@comcast.net</td>
	<td><input type=hidden name='password_2' value='abattista'>abattista</td>
	<td><input type=hidden name='mname_2' value=''>&nbsp;</td>
	<td><input type=hidden name='active_2' value='true'>true</td>
	<td><input type=hidden name='suffix_2' value=''></td>
	<td><input type=hidden name='status_2' value='1'>1</td>
	<td><input type=hidden name='inserted_2' value='oppExport'>oppExport</td>

</tr>
<tr>
	<td><input checked=checked type=checkbox name='chk' value='3'></td>
	<td><input type=hidden name='title_3' value=''></td>
	<td><input type=hidden name='fname_3' value='Andrew'>Andrew</td>
	<td><input type=hidden name='lname_3' value='Burnett'>Burnett</td>
	<td><input type=hidden name='taxid_3' value='xxxxxxxx'>049587706</td>
	<td><input type=hidden name='lastlogon_3' value='10/25/2006''>10/25/2006</td>

	<td><input type=hidden name='username_3' value='burnetteandrew@netscape.net'>burnetteandrew@netscape.net</td>
	<td><input type=hidden name='password_3' value='aburnett'>aburnett</td>
	<td><input type=hidden name='mname_3' value=''>&nbsp;</td>
	<td><input type=hidden name='active_3' value='true'>true</td>
	<td><input type=hidden name='suffix_3' value=''></td>
	<td><input type=hidden name='status_3' value='1'>1</td>
	<td><input type=hidden name='inserted_3' value='oppExport'>oppExport</td>

</tr>

feyd | Please use[/syntax]

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

Re: iterate through form elements

Posted: Wed Oct 25, 2006 3:15 pm
by feyd
hc wrote:I think a foreach, but I am not getting the syntax right.
Possibly. Post your php code.

I'll say this: having two elements named exactly the same (with few exceptions) will make php place them into the same variable after parsing. The latter will clobber the former.

Posted: Wed Oct 25, 2006 3:30 pm
by hc
I got it. I changed the name 'chk' to chk[] and now I can iterate through. Thank you

Code: Select all

foreach ($_POST['chk'] as $name => $val)
{
	//echo $val . '</br>';
	echo $_POST['title_' . $val] . ' ' . $_POST['fname_' . $val] . ' ' . $_POST['lname_' . $val] . ' ' . $_POST['taxid_' . $val] . ' ' . '</br>';
}
[/syntax]

Is this what you want?

Posted: Wed Oct 25, 2006 3:52 pm
by churt
Might help.

Code: Select all

echo "<form name='fm1' action='".$PHP_SELF."' method=post>";
if($chk1){ $chkd1='checked=checked'; }else{ $chkd1=''; }
if($chk2){ $chkd2='checked=checked'; }else{ $chkd2=''; }
if($chk3){ $chkd3='checked=checked'; }else{ $chkd3=''; }
echo "
<table><tr>
<td><input $chkd1 type=checkbox name='chk1' value='1'></td>
<td><input type=hidden name='title_1' value=''></td>
<td><input type=hidden name='fname_1' value='Andrew'>Andrew</td>
<td><input type=hidden name='lname_1' value='Akins'>Akins</td>
<td><input type=hidden name='taxid_1' value='xxxxxxxx'>260635446</td>
<td><input type=hidden name='lastlogon_1' value='10/25/2006''>10/25/2006</td>

<td><input type=hidden name='username_1' value='aakins@smcvt.edu'>aakins@smcvt.edu</td>
<td><input type=hidden name='password_1' value='aakins'>aakins</td>
<td><input type=hidden name='mname_1' value=''>&nbsp;</td>
<td><input type=hidden name='active_1' value='true'>true</td>
<td><input type=hidden name='suffix_1' value=''></td>
<td><input type=hidden name='status_1' value='1'>1</td>
<td><input type=hidden name='inserted_1' value='oppExport'>oppExport</td>

</tr>
<tr>
<td><input $chkd2 type=checkbox name='chk2' value='2'></td>
<td><input type=hidden name='title_2' value=''></td>
<td><input type=hidden name='fname_2' value='Albert'>Albert</td>
<td><input type=hidden name='lname_2' value='Battista'>Battista</td>
<td><input type=hidden name='taxid_2' value='xxxxxxxx'>579648564</td>
<td><input type=hidden name='lastlogon_2' value='10/25/2006''>10/25/2006</td>

<td><input type=hidden name='username_2' value='albattista12@comcast.net'>albattista12@comcast.net</td>
<td><input type=hidden name='password_2' value='abattista'>abattista</td>
<td><input type=hidden name='mname_2' value=''>&nbsp;</td>
<td><input type=hidden name='active_2' value='true'>true</td>
<td><input type=hidden name='suffix_2' value=''></td>
<td><input type=hidden name='status_2' value='1'>1</td>
<td><input type=hidden name='inserted_2' value='oppExport'>oppExport</td>

</tr>
<tr>
<td><input $chkd3 type=checkbox name='chk3' value='3'></td>
<td><input type=hidden name='title_3' value=''></td>
<td><input type=hidden name='fname_3' value='Andrew'>Andrew</td>
<td><input type=hidden name='lname_3' value='Burnett'>Burnett</td>
<td><input type=hidden name='taxid_3' value='xxxxxxxx'>049587706</td>
<td><input type=hidden name='lastlogon_3' value='10/25/2006''>10/25/2006</td>
<td><input type=hidden name='username_3' value='burnetteandrew@netscape.net'>burnetteandrew@netscape.net</td>
<td><input type=hidden name='password_3' value='aburnett'>aburnett</td>
<td><input type=hidden name='mname_3' value=''>&nbsp;</td>
<td><input type=hidden name='active_3' value='true'>true</td>
<td><input type=hidden name='suffix_3' value=''></td>
<td><input type=hidden name='status_3' value='1'>1</td>
<td><input type=hidden name='inserted_3' value='oppExport'>oppExport</td>
<td><input type=submit name=chked value='Test'></td>
</tr></table>";

echo "<table border=1>";
for($i=1; $i<4; $i++){
    $chk="chk$i";
    $chk=$$chk;
    echo "<tr>";
    if($chk){
        foreach($_POST as $key => $tdata){
            if(substr($key,-1,1)==$i) echo "<td>$tdata</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";