Checkbox array

This is a discussion on Checkbox array within the PHP Language forums, part of the PHP Programming Forums category; Hi, I have a checkbox array containing the id of a record in a MySQL database. The checkboxes are created ...


Go Back   Usenet Forums > PHP Programming Forums > PHP Language

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 03-06-2006
Paul Morrison
 
Posts: n/a
Default Checkbox array

Hi,

I have a checkbox array containing the id of a record in a MySQL database.
The checkboxes are created dynamically depending on what is stored in the
database. I want to send the checkbox array to my stop_subscriptions.php
file, running the code on all checked boxes, however I dont seem to be able
to actually send the array, I was hoping that someone could steer me in the
right direction.

Cheers,

Paul

<?php
$sql = "SELECT i.type, i.title , s.inj_id FROM inj_subscription s,
injustices i WHERE s.member_id = '$user' AND i.inj_id = s.inj_id AND
s.inj_id IS NOT null" ;
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result) ;
if ($row) {
echo "<div><span>Specific Subsriptions:</span><br/>" ;
$table_start ='<table width="90%" table name="table2" align="center"
cellspacing="0" border="0">
<tr>
<form method="post" action="stop_subscription.php">
<th width="20%">Type</th>
<th width="70%">Title</th>
<th width="10%"></th>
<input type="submit" name="Submit" value="Submit"
style="font-size:10px"/><p>
<input type="hidden" name="stop_subscription"
value="1"/>
</form>
</tr>';
echo $table_start;
$rownum = 0;
while($row) {
$rownum++;
$style = rowcolor($rownum);
$table_rows .= '<td id="td" align="center"
style="'.$style.';padding:5px;" >'."\n".'<form><input type="checkbox"
name="deletethis[]" value="'.$row['inj_id'] . '"></form></td>'."\n\t";
echo "<tr>" . $table_rows . "</tr>";
$row = mysql_fetch_assoc($result) ;
}
echo '</table><Br/></div><br/>';
}
?>


Reply With Quote
  #2 (permalink)  
Old 03-06-2006
Kimmo Laine
 
Posts: n/a
Default Re: Checkbox array

"Paul Morrison" <nospam@nospam.com> wrote in message
news:duh3rd$lt2$1@oheron.kent.ac.uk...
> Hi,
>
> I have a checkbox array containing the id of a record in a MySQL database.
> The checkboxes are created dynamically depending on what is stored in the
> database. I want to send the checkbox array to my stop_subscriptions.php
> file, running the code on all checked boxes, however I dont seem to be
> able to actually send the array, I was hoping that someone could steer me
> in the right direction.
>


The problem is not that you are submitting an array, the problem is with the
form tags. See comments below.

>
> <?php
> $sql = "SELECT i.type, i.title , s.inj_id FROM inj_subscription s,
> injustices i WHERE s.member_id = '$user' AND i.inj_id = s.inj_id AND
> s.inj_id IS NOT null" ;
> $result = mysql_query($sql);
> $row = mysql_fetch_assoc($result) ;
> if ($row) {
> echo "<div><span>Specific Subsriptions:</span><br/>" ;
> $table_start ='<table width="90%" table name="table2"
> align="center" cellspacing="0" border="0">
> <tr>
> <form method="post" action="stop_subscription.php">
> <th width="20%">Type</th>
> <th width="70%">Title</th>
> <th width="10%"></th>
> <input type="submit" name="Submit" value="Submit"
> style="font-size:10px"/><p>
> <input type="hidden" name="stop_subscription"
> value="1"/>
> </form>


The form ends here in the </form> tag

> </tr>';
> echo $table_start;
> $rownum = 0;
> while($row) {
> $rownum++;
> $style = rowcolor($rownum);
> $table_rows .= '<td id="td" align="center"


then you begin another form here, apparently each checkbox gets their own
form since it's inside the while loop.

> style="'.$style.';padding:5px;" >'."\n".'<form><input type="checkbox"
> name="deletethis[]" value="'.$row['inj_id'] . '"></form></td>'."\n\t";
> echo "<tr>" . $table_rows . "</tr>";
> $row = mysql_fetch_assoc($result) ;
> }
> echo '</table><Br/></div><br/>';
> }
> ?>



All fields that you want to post must be within the SAME <form>...</form>
range, any fields outside that range, or fields inside another form are not
posted when a form is submitted. Change the code so that you generate just
one form, and all your form fields are inside that same form.

--
"En ole paha ihminen, mutta omenat ovat elinkeinoni." -Perttu Sirviö
spam@outolempi.net | Gedoon-S @ IRCnet | rot13(xvzzb@bhgbyrzcv.arg)


Reply With Quote
  #3 (permalink)  
Old 03-06-2006
Paul Morrison
 
Posts: n/a
Default Re: Checkbox array

> All fields that you want to post must be within the SAME <form>...</form>
> range, any fields outside that range, or fields inside another form are
> not posted when a form is submitted. Change the code so that you generate
> just one form, and all your form fields are inside that same form.


How can I enclose all parts of the form? When I first create the table I
need to open the form tag, but in order to enclose the checkboxes as well it
therefore needs to close after all the checkboxes have been created. I have
tried starting the form before I create the table and it doesn't like it.

Paul


Reply With Quote
  #4 (permalink)  
Old 03-06-2006
Erwin Moller
 
Posts: n/a
Default Re: Checkbox array

Paul Morrison wrote:

>> All fields that you want to post must be within the SAME <form>...</form>
>> range, any fields outside that range, or fields inside another form are
>> not posted when a form is submitted. Change the code so that you generate
>> just one form, and all your form fields are inside that same form.

>
> How can I enclose all parts of the form? When I first create the table I
> need to open the form tag, but in order to enclose the checkboxes as well
> it therefore needs to close after all the checkboxes have been created. I
> have tried starting the form before I create the table and it doesn't like
> it.
>
> Paul


Kimmo said that you closed the form too early.
So put the </form> after all form-elements, including all checkboxes and
submitbutton.

So solution is simple: move the </form> after the loop and the submitbutton.

Regards,
Erwin Moller
Reply With Quote
  #5 (permalink)  
Old 03-06-2006
Kimmo Laine
 
Posts: n/a
Default Re: Checkbox array

"Paul Morrison" <nospam@nospam.com> wrote in message
news:duh57p$n85$1@oheron.kent.ac.uk...
>> All fields that you want to post must be within the SAME <form>...</form>
>> range, any fields outside that range, or fields inside another form are
>> not posted when a form is submitted. Change the code so that you generate
>> just one form, and all your form fields are inside that same form.

>
> How can I enclose all parts of the form? When I first create the table I
> need to open the form tag, but in order to enclose the checkboxes as well
> it therefore needs to close after all the checkboxes have been created. I
> have tried starting the form before I create the table and it doesn't like
> it.



Doesn't like it? What the hell does that mean? Just do it like this:

<form method="post" action="stop_subscription.php">

then all your php code here, the table, checkboxes, submit buttons,
everything, the whole shebang here and finally after all that close the
form:

</form>

My code always likes it like that.

--
"En ole paha ihminen, mutta omenat ovat elinkeinoni." -Perttu Sirviö
spam@outolempi.net | Gedoon-S @ IRCnet | rot13(xvzzb@bhgbyrzcv.arg)


Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT +1. The time now is 12:14 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0