php - 单击php中的输入按钮后如何保留值?
问题描述
共有三个表单元素:开始日期、结束日期和选择框。
<input type="date" class="input-sm form-control" name="start" placeholder="Start" id = startdate value='<?php echo date('Y-m-d');?>'/>
<input type="date" class="input-sm form-control" name="end" placeholder="End" id = enddate value='<?php echo date('Y-m-d');?>'/>
</div>
<div class="mb-4">
<h5 class="mb-4">Selection</h5>
<select class="form-control select2-single" name = "model" id = "model" data-width="100%">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
</div>
在我点击这样的按钮后
<div class = "col-lg-5 col-md-5 col-sm-5 col-xs-5">
<input class="btn btn-primary btn-lg btn-shadow" id = "btn1" type="submit" name = "search" value="입력" ></input>
</div>
我想保留 startdate 值、enddate 值和选定的选项值。
这是我处理输入值的 php 代码:
<?php
if (isset($_POST['search']))
{
$startDate = $_POST['start'];
$startDate = str_replace('/', '-', $startDate );
$startDate = date("Y-m-d", strtotime($startDate));
// echo $startDate;
$endDate = $_POST['end'];
$endDate = str_replace('/', '-', $endDate );
$endDate = date("Y-m-d", strtotime($endDate));
// echo $endDate;
$model = $_POST['model'];
// echo $model;
如何编辑我的代码?
解决方案
对于日期,这是一个简单的回声。对于下拉列表,您需要添加selected
与先前输入匹配的选项。
您还需要考虑没有收到输入的情况(因为这是第一次加载表单)并设置一些默认值。
注意您的日期处理代码完全没有必要,因为日期已经从<input type="date"
inyyyy-mm-dd
格式发送。
所以,你需要这样的东西:
<?php
if (isset($_POST['search']))
{
$startDate = $_POST['start'];
$endDate = $_POST['end'];
$model = $_POST['model'];
}
else
{
$startDate = date('Y-m-d');
$endDate = date('Y-m-d');
$model = "";
}
$modelVals = array("A", "B", "C", "D", "E");
...
<input type="date" class="input-sm form-control" name="start" placeholder="Start" id="startdate" value="<?php echo $startDate;?>" />
<input type="date" class="input-sm form-control" name="end" placeholder="End" id="enddate" value="<?php echo $endDate;?>" />
</div>
<div class="mb-4">
<h5 class="mb-4">Selection</h5>
<select class="form-control select2-single" name = "model" id = "model" data-width="100%">
<?php
foreach ($modelVals as $val) {
echo '<option value="A"'.($val == $model ? "selected" : "").'>'.$val.'</option>';
?>
</select>
</div>
推荐阅读
- regex - 正则表达式属性(理论)
- c++ - 为什么我不能在 ncurses 中向 printw 提供字符串参数?
- regex - 提取国名的表达式?
- algorithm - 是否有一种有效的算法来查找所有相交的多边形?
- c++ - 是否投射 shared_ptr
到 shared_ptr 改变它指向的对象? - java - 为什么这个 String HashMap 不能通过 *char* 键获得正确的值
- c# - 使某物同时在 X 轴和 Y 轴上移动
- python - 如何在 django.contrib.auth.forms UserCreationForm 中放置一个复选框
- javascript - 老虎机随机发生器
- c# - 如何在 C# 中设置列表的所有值