首页 > 解决方案 > 选择PHP表单获取所有值

问题描述

谁能帮我理解当我对产品 id 进行 var_dump 时,我得到了一个最后一个 id 的数组,而不是全部单独的?它正在循环所有选择的内容,因此应该返回每个选项的 id 值吗?

<?php
if(isset($_POST['feature'])){
    if(isset($_POST['test'])){
        foreach($_POST['test'] as $selected){
            $option = 'No';
            var_dump($row['product_id']);
        }
    }
}
?>

<form action="" method="POST">
    <?php
    $query = $products->findAll();
    foreach($query as $row){
        if($row['featured'] == 'Yes'){
            echo "<label for='featured'>" . $row['p_name'] . " </label> <input type='checkbox' name='test[]' value ='Yes'checked>
            <input type='hidden' name='product_id' value='" . $row['product_id'] . "'>";
        }
        else
        {
            echo "<label for='featured'>" . $row['p_name'] . " </label> <input type='checkbox' name='test[]' value ='No'>
            <input type='hidden' name='product_id' value='" . $row['product_id'] . "'>";
        }
    }
    ?>
    <input type="submit" name="feature" value="Feature">
</form>

标签: phparraysformscheckbox

解决方案


与其在var_dump内部 foreach 中进行,不如在 foreach 循环之外尝试!

 <?php
    if(isset($_POST['feature'])){
      if(isset($_POST['test'])){
        foreach($_POST['test'] as $selected){
        $option = 'No';
        $res = $selected['product_id'];
        }
        }
        var_dump($res);
      }
     ?>

推荐阅读