Page 1 of 1

Dynamically name array <input> checkbox ?

Posted: Tue Jan 27, 2009 2:41 am
by ttmt
Dynamically name array <input> checkbox ?

Is it possible to generate dynamic array names for input checkbox forms ?

I'm using this code to generate a form of text fields and checkboxs

Code: Select all

 
<?php 
  require_once("includes/connection.php"); 
  require_once("includes/functions.php"); 
  include("includes/header.php"); 
?> 
<?php 
    $query = "SELECT key_id, words FROM keywords"; 
    $result = mysql_query($query); 
    confirm_query($result); 
    $options = ""; 
    while($row = mysql_fetch_array($result)){ 
        $options .= "{$row[1]}:<input type=\"checkbox\" value=".$row[0]." name=\"section[]\" />\n"; 
    } 
    $number_of_uploads = 3; 
?> 
<body> 
    <div id="con"> 
        <form name="upload_form" action="upload.php" method="post" enctype="multipart/form-data"> 
        <?php 
            for($counter = 1;$counter<=$number_of_uploads;$counter++){ 
        ?> 
        <p> 
        <b>Image:</b> 
            <textarea name="title[]" cols="30" rows="1"></textarea> 
        </p> 
        <p> 
        <b>Sections:</b> 
        <?php echo $options ;?> 
        </p> 
        <?php 
            } 
        ?> 
        <br/> 
        <p> 
            <input type="submit" name="submit" value="Add Photos" /> 
        </p> 
        </form> 
    </div> 
</body> 
</html>
 
The while loop generates the checkbox's and the values from all the checkbox's are stored in section[] which can them be used from $_POST['section'].

Code: Select all

 
while($row = mysql_fetch_array($result)){ 
    $options .= "{$row[1]}:<input type=\"checkbox\" value=".$row[0]." name=\"section[]\" />\n"; 
} 
 
What I want to be able to do is create a seperate array for each loop of the while loop so each set of checkbox's created in one loop has it's own array.

Something like:

Code: Select all

 
name="section[].$row[0]\" 
 
 
How can I have a seperate array for each loop of the array?

How can I then access this array with php from the $_POST array ?

I thought I might be able to access the array with something like:
But this doesn't work.

Code: Select all

 
<?php
    echo "<pre>";
        print_r($_POST['section'['.1.']]);
    echo "</pre>";
?>