Php 防止在提交后重置复选框
嗨,我正在开发一个laravel应用程序,我有一个如下所示的表单Php 防止在提交后重置复选框,php,laravel-4,get,Php,Laravel 4,Get,嗨,我正在开发一个laravel应用程序,我有一个如下所示的表单 <div class="row form-wrapper"> <form class="form-horizontal" method="get" autocomplete="off" name="calculateform" id="calculateform" > <div class="form-group {{ $errors->has('Year') ? ' ha
<div class="row form-wrapper">
<form class="form-horizontal" method="get" autocomplete="off" name="calculateform" id="calculateform" >
<div class="form-group {{ $errors->has('Year') ? ' has-error' : '' }}">
<label for="Year" class="col-md-3 control-label calculate-label">@lang('admin/calculate2014/form.Calculate_dep')</label>
<?php
global $Year;
$years = array();
for ($i = 2013; $i < 2050; $i++)
{
$years[] = $i;
}
echo '<select name="Year" class="controls assettext select2 selectyear" id="Year" >';
echo '<option value="">-- Select Year --</option>';
foreach($years as $option)
{
echo "<option value='{$option}'";
if (isset($_GET['Year'])) { if ($_GET['Year'] == $option) { echo 'selected'; } }
echo ">{$option}</option>";
}
echo "</select>";
?>
<input type="submit" class="btn btn-flat gray nextbtn" id ="next" value="Proceed" />
<div class="form-group {{ $errors->has('recalculate') ? 'error' : '' }}">
<label for="nesd" class="col-md-3 control-label recallabel">Recalculate</label>
<div class="controls col-md-7">
<input name="recalculate" type="checkbox" id="recalculate" value="yes" class="recalculate recalbtn" >
{{ $errors->first('recalculate', '<span class="alert-msg"><i class="icon-remove-sign"></i> :message</span>') }}
</div>
</div>
<?php
if($_GET)
{
echo'<br/>';
echo'<br/>';
echo'<br/>';
$Year =$_GET['Year'];
}
?>
{{ $errors->first('Year', '<span class="alert-msg"><i class="icon-remove-sign"></i> :message</span>') }}
</div>
<div class="proceedhide" id="caution" >
<span class="alert-msg cautionmsg"><b>Caution:</b>Be careful if recalculate is checked the database will be refreshed.</span>
</div>
</form>
</div>
@lang('admin/calculate2014/form.Calculate\u dep')
试试这个:
<input type="checkbox" name="recalculate" value="yes" <?php if($_GET['recalculate']=='yes') { ?> checked="checked"<?php } ?> />
/>
尝试删除值=“yes”
,然后检查它是否打开:
<input type="checkbox" name="recalculate" <?php echo(isset($_GET['recalculate']) && $_GET['recalculate']=='on')?"checked":""?>>
这不是对你问题的回答,而是一句小评论。如果要内联回显php函数,可以将其写得更短,例如:将“是”更改为“开”以检查是否选中了“重新计算”,还可以检查值是否为isset以防止警告(isset($\u GET['recalculate']))只有在启用短标记时才可能重复@WesselvanderLinden。错误的做法是,如果您需要将代码移动到另一台服务器,在那里您无法控制php.ini,并且短标记未启用。@WesselvanderLinden这个问题真的很有争议。你可以在这里读到关于这一点的长时间讨论,因此:我尝试了上面显示未定义索引的代码:重新计算。@Arul,这只是一个警告。只需做一件事,请先定义重新计算,然后在代码中使用。我尝试了上面显示未定义索引的代码:重新计算。嗯,可能添加isset()方法:我尝试了这个方法,得到了“Symfony\Component\Debug\Exception\FatalErrorException不能对表达式的结果使用isset()(可以改为使用“null!==expression)”
<input type="checkbox" name="recalculate" <?php echo(isset($_GET['recalculate']) && $_GET['recalculate']=='on')?"checked":""?>>