【问题标题】:How to send checkbox state through form in a table如何通过表格中的表单发送复选框状态
【发布时间】:2014-07-28 17:39:40
【问题描述】:

下面的表格包含一个带有复选框作为输入类型的表格 当我执行 _POST 的 var_dump 时,每个复选框的值都不会通过

<form method="post" action="index.php?option=com_content&view=article&id=3" name="details" >
        <div id="table_container">   
        <table class="z">
            <thead>
                <tr>
                    <th>Select</th>
                    <th>Last Name</th>
                    <th>First Name</th>
                    <th>Street Num</th>
                    <th>Street Name</th>
                    <th>City</th>
                    <th>State</th>
                    <th>Zip</th>
                    <th>Phone</th>
                </tr>
            </thead>
            <tbody>
                <?
                while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                    ?>  
                    <tr>
                        <td style="text-align: center; vertical-align: middle;">
                            <input type="checkbox" name="<?echo $row['UUID'];?>">    
                        </td>
                        <td><?echo $row['last_name'];?></td>
                        <td><?echo $row['first_name'];?></td>
                        <td><?echo $row['street_num'];?></td>
                        <td><?echo $row['street_name'];?></td>
                        <td><?echo $row['city'];?></td>
                        <td><?echo $row['state'];?></td>
                        <td><?echo $row['zip'];?></td>
                        <td><?echo $row['phone'];?></td>                        
                    </tr>
                    <?                  
                }
                ?>
            </tbody>
        </table>
        </div>
        <input type="hidden" id="type" name="type" value="4">
            <input type="submit" value="Place On Hold">
        </form>

【问题讨论】:

    标签: php html forms checkbox html-table


    【解决方案1】:

    所以我认为你想要做的是这个。如果我理解正确的话。

    <input type="checkbox" name="UUID[]" value="<?echo $row['UUID'];?>">
    

    现在,当您发布页面时,您将在 POST 中拥有一个名为 UUID 的数组,并选择每个 UUID。

    【讨论】:

    • 我想我最初误解了这个问题。更新了如何去做的答案。
    【解决方案2】:

    假设这是您的复选框: &lt;input type="checkbox" name="uid" value="some_value"&gt;

    你可以使用下面的代码来检查这个复选框是否被选中:

     <?php
      echo (isset($_POST['uid'])?$_POST['uid']:'');
     ?>
    

    isset($_POST['uid']) 会检查它是否被选中,因此$_POST['uid'] 会在被选中时返回它的值。

    【讨论】:

    • 但是如果选择的不止一个,他不会得到所有的......因此括号是必要的name="uid[]"
    • while 循环不会遍历文本字符串。你需要表单本身来发布一个数组,而不是文本......你的方法会导致 $_POST['uid'] 被最后一个选中的复选框替换
    • 它在循环内,所以每次都会创建名称uid[] 的复选框,对吗?那么为什么不给每个复选框一个不同的名称。喜欢使用这个:name="uid[$i]"
    • 您可以这样做,但只有当它是收音机类型选择时才有意义。 uid 有可能有多个选项......他不是在寻找那个......&lt;input type="radio" name="UUID[&lt;?echo $row['UUID'];?&gt;]" value="one"&gt;&lt;input type="radio" name="UUID[&lt;?echo $row['UUID'];?&gt;]" value="two"&gt;&lt;input type="radio" name="UUID[&lt;?echo $row['UUID'];?&gt;]" value="three"&gt;
    • 所以?只需将其包装在 if (isset($_POST['uid']) &amp;&amp; sizeof($_POST['uid'])) 中,但老实说,在生产中关闭 error_reporting 它根本不会抱怨......但它会“马虎”
    猜你喜欢
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多