【问题标题】:php - how to display selected options in a table?php - 如何在表格中显示选定的选项?
【发布时间】:2022-12-19 14:31:56
【问题描述】:

我有一张带选择框的桌子。我想显示与表格相同的所有选定选项(例如矩阵)。但它只是在底部显示一列。几个小时以来我一直在寻找解决方案,但似乎我需要在这里问这个问题。任何建议都会很棒。所以,这是代码:

`

<style>
    table, th, td {
  border: 1px solid;
}
</style>

<table>
    <thead>
        <tr>
            <td></td>
            <td>C1</td>
            <td>C2</td>
            <td>C3</td>
        </tr>
    </thead>
    <tbody>
        <form action="" method="POST" id="formid">
            <?php
            for ($i=1; $i <= 3 ; $i++) {
                ?>
            <tr>
                <td>A<?php echo $i ?></td>

                <?php
                
                for ($k=1; $k <= 3 ; $k++) {
                ?>

                <td>
                    <select name="selectid[]">
                        <option disabled selected>-Select-</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                    <?php } } ?>
                </td>
            </tr>
        </form>
    </tbody>
</table>
        <input type="submit" form="formid" name="submit" value="Submit">



<!-- display selected options -->
<?php if (isset($_POST['submit'])) { ?>
<style>
    table, th, td {
  border: 1px solid;
}
</style>

<table>
    <thead>
    <tr>
        <td>
            <td>C1</td>
            <td>C2</td>
            <td>C3</td>
        </td>
    </tr>
    </thead>
    <tbody>

        <?php
            for ($i=1; $i <= 3 ; $i++) { ?>
            <tr>
                <td>A<?php echo $i ?></td>

                <?php
            }
                $select = $_POST['selectid'];
                foreach ($select as $value) {
                ?>
            
            <td><?php echo $value ?></td>
        <?php } ?>
            </tr>
        
    </tbody>
</table>

<?php } ?>

`

【问题讨论】:

  • 您没有确定每个选择属于哪个单元格,因此如果您只填写三个单元格,则 POST 请求无法知道它属于哪个单元格,因为它只是填写一系列选择
  • 我的错。任何建议如何识别每个单元格选择?

标签: php select html-table


【解决方案1】:

代码中有几个问题,第一个问题是发布请求只是将数据推送到数组,而没有真正确认该数据在页面中的来源。 您可以严格识别二维数组中的索引(查看表是如何二维的)。

此外,您没有在第一个循环中包含该行,该循环将所有数据推送到最后一行。这是一个粗略的工作示例,可以实现您想要做的事情。

<style>
    table, th, td {
  border: 1px solid;
}
</style>

<table>
    <thead>
        <tr>
            <td></td>
            <td>C1</td>
            <td>C2</td>
            <td>C3</td>
        </tr>
    </thead>
    <tbody>
        <form action="" method="POST" id="formid">
            <?php
            for ($i=0; $i < 3 ; $i++) {
                ?>
            <tr>
                <td>A<?php echo $i ?></td>

                <?php
                
                for ($k=0; $k < 3 ; $k++) {
                ?>

                <td>
                    
                    <select name="selectid[<?php echo $i ?>][<?php echo $k ?>]">
                        <option disabled selected>-Select-</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                    </select>
                    <?php } } ?>
                </td>
            </tr>
        </form>
    </tbody>
</table>
        <input type="submit" form="formid" name="submit" value="Submit">



<!-- display selected options -->
<?php if (isset($_POST['submit'])) { ?>
<style>
    table, th, td {
  border: 1px solid;
}
</style>

<table>
    <thead>
    <tr>
        <td>
            <td>C1</td>
            <td>C2</td>
            <td>C3</td>
        </td>
    </tr>
    </thead>
    <tbody>
        <?php
        for ($i=0; $i < 3 ; $i++) {
            ?>
        <tr>
            <td>A<?php echo $i ?></td>

            <?php
            
            for ($k=0; $k < 3 ; $k++) {
            ?>

            <td>
                <?php 
                if(isset($_POST['selectid'][$i][$k])){
                    echo $_POST['selectid'][$i][$k];
                }
                ?>
                <?php } } ?>
            </td>
        </tr>

        
        
    </tbody>
</table>
<?php 
} ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多