【问题标题】:Displaying values of multiple checkboxes from MySQL database显示 MySQL 数据库中多个复选框的值
【发布时间】:2016-09-24 06:31:03
【问题描述】:

我有一个表单,它使用多个复选框字段来保存个人资料数据。

值正在像1, 2 一样被提交到数据库中,由内爆$_POST 变量提供,但我似乎无法弄清楚如何在配置文件页面上分解它们并显示值。

我的提交代码(插入查询的一部分);

$profile_piercings = implode(", ", $_POST['profile_piercings']);

我的个人资料代码以呼应这些值;

<?php if(!empty($profile['profile_piercings'])){ ?>
<dt>Piercings</dt>
<dd><?php //echo $profile['profile_piercings'] ?>
<?php 
$piercing_values = $profile['PiercingsText'];
$piercings = explode(", ", $piercing_values);
echo $piercing_values; ?></dd>
<?php } ?>

打印展开后的数组时,我的查询似乎只传递了第一个值。我需要这样做才能将数值转换为相应的文本值(例如 1 = 耳朵)。

我的 SQL 代码摘录;

frmhaircolour.id,
                frmhaircolour.textvalue AS HairColourText,
                frmpiercings.id,
                frmpiercings.textvalue AS PiercingsText,
FROM profiles
            LEFT JOIN frmeyecolour ON profiles.profile_eyecolour = frmeyecolour.id
            LEFT JOIN frmhaircolour ON profiles.profile_haircolour = frmhaircolour.id
            LEFT JOIN frmpiercings ON profiles.profile_piercings = frmpiercings.id

【问题讨论】:

    标签: php mysql forms checkbox explode


    【解决方案1】:

    遍历你的数组:

    $piercings = explode(", ", $piercing_values);
    foreach ($piercings as $piercing) {
       echo $piercing."<br>";
    }
    

    【讨论】:

    • 谢谢。我打印出 piercings 数组,但看起来好像我的查询只传递了列中的第一个值 - 我已经用我的 sql 查询的摘录更新了我的问题。
    【解决方案2】:

    要获取所有值,请使用 foreach:

    $piercings = explode(", ", $piercing_values);
    foreach ($piercings as $piercing) {
       echo $piercing."<br>";
    }
    

    以及获取特定值:

    $piercings = explode(", ", $piercing_values);
    echo $piercing[0]."<br>"; // or $piercing[1]; depending on what you want.
    

    【讨论】:

    • 谢谢。我打印出 piercings 数组,但看起来好像我的查询只传递了列中的第一个值 - 我已经用我的 sql 查询的摘录更新了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多