【问题标题】:How to pass multiple array values of checkbox in PHP to another page?如何将PHP中复选框的多个数组值传递到另一个页面?
【发布时间】:2022-01-19 16:00:59
【问题描述】:

我想创建一个选择页面(通过使用复选框),最后它将显示选择所有复选框的结果。在我的第一页(仅包含 HTML)中有大约 5 种不同类别的复选框,分别用于情感、时间、动作、工具和个性化。

首页:index.php

    <div>
    <form action="process.php" method="post">
    <label>Select your emotions :</label>
    <input type="checkbox" name="emotions[]" value="Sadness"> Sadness
    <input type="checkbox" name="emotions[]" value="Anxiety"> Anxiety
    <input type="checkbox" name="emotions[]" value="Anger"> Anger
    <input type="checkbox" name="emotions[]" value="Disgust"> Disgust
    <input type="checkbox" name="emotions[]" value="Fear"> Fear
    <input type="checkbox" name="emotions[]" value="Surprised"> Surprised
    <br>
    <label>Select your time to commit :</label>
    <input type="checkbox" name="time[]" value="1"> Less than 1 minute
    <input type="checkbox" name="time[]" value="1-3"> 1-3 minutes
    <input type="checkbox" name="time[]" value="3-5"> 3-5 minutes
    <input type="checkbox" name="time[]" value="5-10"> 5-10 minutes
    <input type="checkbox" name="time[]" value="10-15"> 10-15 minutes
    <input type="checkbox" name="time[]" value="15-30"> 15-30 minutes
    <br>
    <label>Select how you want to move :</label>
    <input type="checkbox" name="movement[]" value="Lying Down"> Lying Down
    <input type="checkbox" name="movement[]" value="Sitting"> Sitting
    <input type="checkbox" name="movement[]" value="Standing"> Standing
    <input type="checkbox" name="movement[]" value="Stretching"> Stretching
    <input type="checkbox" name="movement[]" value="Walking"> Walking
    <input type="checkbox" name="movement[]" value="Work-out"> Work-out
    <br>
    <label>Tools around me :</label>
    <input type="checkbox" name="tools[]" value="Me"> Me
    <input type="checkbox" name="tools[]" value="Pen & Paper"> Pen & Paper
    <input type="checkbox" name="tools[]" value="Bottle"> Bottle
    <input type="checkbox" name="tools[]" value="Color Pencils"> Color Pencils
    <input type="checkbox" name="tools[]" value="Drinks"> Drinks
    <input type="checkbox" name="tools[]" value="Snacks"> Snacks
    <label>Personalization :</label>
    <input type="checkbox" name="personalization[]" value="Favorites"> Favorites
    <input type="checkbox" name="personalization[]" value="New"> New
    <input type="checkbox" name="personalization[]" value="Completed"> Completed
    <input type="checkbox" name="personalization[]" value="Islamic"> Islamic
</div>
<div>
    <button type="submit">Submit</button>
</div>

第二页:process.php

<?php
$emotions = (isset($_POST['emotions'])) ? $_POST['emotions'] : array(); ?>
<p><strong>Emotions :</strong>
    <?php
    if (count($emotions) > 0) {
        foreach ($emotions as $emotions) {
            echo $emotions . ' ';
        }
    } else {
        echo "No emotions has been selected";
    }
    ?>
</p> 

<?
$time = (isset($_POST['time'])) ? $_POST['time'] : array(); ?>
<p><strong>Time :</strong>
    <?php
    if (count($time) > 0) {
        foreach ($time as $time) {
            echo $time . ' ';
        }
    } else {
        echo "No time has been selected";
    }
    ?>
</p> 
<?
$movement = (isset($_POST['movement'])) ? $_POST['movement'] : array(); ?>
<p><strong>Movement :</strong>
    <?php
    if (count($movement) > 0) {
        foreach ($movement as $movement) {
            echo $movement . ' ';
        }
    } else {
        echo "No movements has been selected";
    }
    ?>
</p> 

<?
$tools = (isset($_POST['tools'])) ? $_POST['tools'] : array(); ?>
<p><strong>Tools :</strong>
    <?php
    if (count($tools) > 0) {
        foreach ($tools as $tools) {
            echo $tools . ' ';
        }
    } else {
        echo "No tools has been selected";
    }
    ?>
</p> 

<?
$personalization = (isset($_POST['personalization'])) ? $_POST['personalization'] : array(); ?>
<p><strong>Personalization :</strong>
    <?php
    if (count($personalization) > 0) {
        foreach ($personalization as $personalization) {
            echo $personalization . ' ';
        }
    } else {
        echo "No personalization has been selected";
    }
    ?>
</p> 

【问题讨论】:

  • 那么你的问题是什么......也许我是盲人,但我在帖子中看不到它的描述
  • 问题出在哪里?仅 1 条提示不要在 foreach 中使用相同的名称 (foreach ($emotions as $emotion))
  • 问题出在标题上? :D
  • 代码看起来不错,尝试调试,检查你是否在第二个php中接收值,如果接收是什么格式,你就会得到它。
  • 您的标题是一个相当广泛的问题...它没有解释您在尝试使用您发布的代码时遇到的问题。给我们更具体的问题描述

标签: javascript php html css


【解决方案1】:

查看您的 foreach。 你要做的是:

$array = [1, 2, 3];
foreach($array as $array){
  // $array is no more an array, but have the first value of the init array : 1
}

就像你这样做:$array = $array[0]

你必须做类似的事情:

$array = [1, 2, 3];
foreach($array as $ar){
  ...
  // code for $ar
  ...
}

【讨论】:

    【解决方案2】:

    检查您是否在表单标签的action属性中输入了正确的路径以到达“process.php”文件

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 2019-11-30
    • 2017-01-25
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多