Php 从特定帖子中获取名称和值
我有一个复选框,我想将所有值传递到一个函数中,以便更新一个表 该复选框有60个选项,我使用mysql中的foreach()生成它们 //html表单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
<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)
<? 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 ?>