Vladislav Finder
Vladislav Finder

Reputation: 63

Why PHP get empty array from checkbox with the dynamic values?

I have a table:

This table returns records from BD. A user can add any person from an entry to the group he created.

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
         <table class="table table-dark table-bordered">
            <thead>
            <tr >
            <div class="row">
                <th >Add</th>
                <th >id</th>
                <th >first_name</th>
                <th >last_name</th>
                <th >Groups</th>
            </div>
            </tr>
            </thead>
            <tbody>
                <?php foreach($my_subordinates as $my_subordinate):?>
                    <tr>
                        <td ><input type="checkbox" name="grouped[]" value="<?php $my_subordinate['id']?>">to group</td>
                        <td ><?php echo $my_subordinate['id'] ?></td>
                        <td ><?php echo $my_subordinate['first_name'] ?></td>
                        <td ><?php echo $my_subordinate['last_name'] ?></td>
                        <td ><?php  ?></td>
                    </tr>
                  <?php endforeach;?>
            </tbody>
        </table>
            <div class="form-group row">
               <label for="name" class="col-4 col-form-label">Group name</label> 
               <div class="col-4">
                  <input id="group_name" name="group_name" pattern="{2,255}" value="" class="form-control here" type="text" autofocus required>
               </div>
            </div>
            <div class="form-group row">
                <div class="offset-4 col-8">
                    <button name="create_group" type="submit" class="btn btn-primary">Create</button>
                </div>
            </div>
         </form>

The value in checkbox gets users id and when user selects some persons, ids must be passed to $ _POST. Here:

if(isset($_POST['create_group']))
{
   b_dump($_POST);
}

I check $ _POST, when the button 'create_group'is pressed. But the array is empty:

here I chose all three employees

Why is it like this? If you know simpler ways to add people to groups, I would be interested to know)

Upvotes: 1

Views: 86

Answers (2)

Amirreza Zibaee
Amirreza Zibaee

Reputation: 48

You have forgotten to echo it.

Do it like this:

<td ><input type="checkbox" name="grouped[]" value="<?php echo $my_subordinate['id']?>">to group</td>

Upvotes: 3

Danyal Sandeelo
Danyal Sandeelo

Reputation: 12391

You forgot to echo the value.

value="<?php $my_subordinate['id']?>">

has to be

value="<?php  echo $my_subordinate['id']?>">

or

value="<?=  $my_subordinate['id']?>">

Upvotes: 1

Related Questions