首页 > 解决方案 > 单击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;

如何编辑我的代码?

标签: phphtml

解决方案


对于日期,这是一个简单的回声。对于下拉列表,您需要添加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>

推荐阅读