1

好吧,我有这个代码:

<form name="download" id="download" method="post" enctype="multipart/form-data">
    <div>
        <label for="beginning_date"><span class="required">*</span> Beginning Date: </label>
        <input type="text" size="30" id="beginning_date" name="beginning_date" value="<?php echo date("d.m.Y"); ?>" required="required" />
    </div>
    <input type="submit" value="Next" name="next"/>
</form>

和 ..

if(array_key_exists('next', $_POST))
{
    if (preg_match('/^\d{1,2}\.\d{1,2}\.\d{4}$/', $date))
    {
        //the code continues...
    }
    else
    {
        echo "Wrong formation <br />";
    }
}

这是一个很长的表格,我希望如果有人输入这样的日期“02.03.20322”,并且出现错误,他们不必重新开始填写表格......表格已经出现了“填充字段”...

我已经尝试过这样的:

<input type="text" size="30" id="beginning_date" name="beginning_date" value="<?php if (isset($date)) { echo $date; } else { echo date("d.m.Y"); } ?>" required="required" />

但是...没有变化:(

4

4 回答 4

1

查看您的代码,根本没有 $date 所以您应该检查的是 $_POST['beginning_date'] 的存在而不是 $date 像这样:

<input type="text" size="30" id="beginning_date" name="beginning_date" value="<?php if (isset($_POST['beginning_date'])) { echo $_POST['beginning_date']; } else { echo date("d.m.Y"); } ?>" required="required" />
于 2013-05-02T09:54:19.527 回答
0

把它存起来$_SESSION

在页面顶部或您的 action.php 中的任何位置:

if (isset($_POST)){
    $_SESSION['date'] = $_POST['beginning_date'];
}

接着:

<input type="text" size="30" id="beginning_date" name="beginning_date" value="<?php echo (isset($_SESSION['date'])) ? $_SESSION['date'] : date("d.m.Y");?>" required="required" />

如果您将来需要更改操作页面,则使用会话很有用。但如果您想使用 post 代替(用于同一页面发布),只需回显它:

<input type="text" size="30" id="beginning_date" name="beginning_date" value="<?php echo (isset($_POST['beginning_date'])) ? $_POST['beginning_date'] : date("d.m.Y"); ?>" required="required" />
于 2013-05-02T09:53:08.493 回答
0

php..

 session_start();
 if(array_key_exists('next', $_POST))
 {
      if (preg_match('/^\d{1,2}\.\d{1,2}\.\d{4}$/', $date))
     {
       //the code continues... 
     }
     else{
         echo "Wrong formation <br />";
          $_SESSION['date']=$_POST['beginning_date'];
     }
   }

html..

<input type="text" size="30" id="beginning_date" name="beginning_date" value="<?php if     
   (isset($_SESSION['date'])) { echo $_SESSION['date'] } else { echo date("d.m.Y"); } ?>" 
    required="required" />
于 2013-05-02T09:54:42.583 回答
0

使用方法 post 时,用户提交的值进入$_POST数组。表单元素的名称用作键。

因此,要检索用户提交的日期,您应该使用:

$_POST['beginning_date']
于 2013-05-02T09:55:14.363 回答