Php 从特定帖子中获取名称和值

Php 从特定帖子中获取名称和值,php,html,mysql,forms,post,Php,Html,Mysql,Forms,Post,我有一个复选框,我想将所有值传递到一个函数中,以便更新一个表 该复选框有60个选项,我使用mysql中的foreach()生成它们 //html表单 <div class="form-group"> <? $i = 0; foreach ($row_specifics as $title => $value) { if ($value =='on') { ?> <label class="control-la

我有一个复选框,我想将所有值传递到一个函数中,以便更新一个表

该复选框有60个选项,我使用mysql中的foreach()生成它们

//html表单

<div class="form-group">
<?  $i = 0; 
    foreach ($row_specifics as $title => $value) {
        if ($value =='on') { ?>
            <label class="control-label col-lg-2"><?= $title ?></label>
            <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;">
                <div class="make-switch switch-small" data-on="success" data-off="danger">
                    <input id="specs_value" name="<?= $title ?>" type="checkbox" value="on" checked/>
                </div>
            </div>
        <? } else { ?>
            <label class="control-label col-lg-2"><?= $title ?></label>
            <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;">
                <div class="make-switch switch-small" data-on="success" data-off="danger">
                    <input id="specs_value" name="<?= $title ?>" type="checkbox" value="off"/>
                </div>
            </div>
        <?} $i++;
            if($i % 4 == 0) { ?> 
                </div>
                <div class="form-group"> 
        <?} }?>
问题:如何从
$\u POST
中获取标题和值,并将其用于函数和更新查询


$\u POST
仅获取“打开”的值。不是“关”。我可以全部获取它们,也可以仅从值中获取标题和值,以便在查询中使用它。

在您的循环中,使用isset验证
$\u POST['title']
是否存在,这意味着复选框处于启用状态:

foreach ($row_specifics as $title => $value) {

    $valueToInsert = ( isset($_POST[$title]) ) ? $value : null;

    if( $valueToInsert ) {
        $query = mysql_query("UPDATE `specifics` SET $title = '{$valueToInsert}' WHERE `car_id`= $id");
    }
}

不在主题上,但不完全在主题之外。。。您可以简化代码,使其更易于管理和阅读

<? foreach ($row_specifics as $title => $value): ?>
    <label class="control-label col-lg-2"><?= $title ?></label>
        <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;">
            <div class="make-switch switch-small" data-on="success" data-off="danger">
                <input id="specs_value" name="<?= $title ?>" type="checkbox" value="<?= $value?>"<?= $value=='on' ? 'checked' : ''?>/>
           </div>
        </div>
<? endforeach ?>

/>

这将消除对if语句和重复代码块的需要

谢谢你的回复。将选项更改为上的后,该表未更新。无错误
$valueToInsert
仅返回值,但我们需要在查询中使用当前标题当前标题是
title
,因为您在验证时处于循环中
if($valueToInsert)
$value)->标题是关键感谢您的帮助。复选框选项生成器上还有一个错误,我必须检查,这就是为什么它不更新表的原因。谢谢。我以前在另一个问题上看到过它,在我解决了更新函数之后,我正要编辑我的代码
<? foreach ($row_specifics as $title => $value): ?>
    <label class="control-label col-lg-2"><?= $title ?></label>
        <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;">
            <div class="make-switch switch-small" data-on="success" data-off="danger">
                <input id="specs_value" name="<?= $title ?>" type="checkbox" value="<?= $value?>"<?= $value=='on' ? 'checked' : ''?>/>
           </div>
        </div>
<? endforeach ?>