Php 需要类型=";“文本”;输入字段以显示以前的POST';如果出现错误,请输入d项

Php 需要类型=";“文本”;输入字段以显示以前的POST';如果出现错误,请输入d项,php,Php,我可能没有很好地解释我想在标题中做什么,所以下面是: 我在.php文件中有一个HTML输入表单。当提交文件时,该输入表单将执行POST操作。该POST操作具有检查字段输入的代码,类似于以下内容: <?php ... if ($_POST["submitted"] == 1) { //"submitted" is a hidden field with value '1' in the form $isvalid = 1; // I

我可能没有很好地解释我想在标题中做什么,所以下面是:

我在
.php
文件中有一个HTML输入表单。当提交文件时,该输入表单将执行
POST
操作。该POST操作具有检查字段输入的代码,类似于以下内容:

<?php ... if ($_POST["submitted"] == 1) { //"submitted" is a hidden field with value '1' in the form $isvalid = 1; // Inits to 1, changes to 0 if something fails checks. $field1 = $_POST["field1"]; $field2 = $_POST["field2"]; ... /* Checks for validation on each field go here, but are not relevant to this question here. */ } if ($isvalid == 1) { // Send email } else { ?> <!-- Print form, and error msg. --> ... <input name="field1" type="text" id="field1" size="32" class="stylingclass"> ... ... ...
以上是示例代码,但这里是真正的问题:当提交并出现错误时,如何让表单中的任何文本输入字段自动包含以前输入的值,以便用户可以根据我设置的任何约束相应地更正输入?

只需添加
value=”“
(假设PHP5.4,使用
否则)

只需添加
value=”“
(假设PHP5.4,使用
否则)

您可以使用基本三元运算符设置值参数:

<input name="field1" type="text" id="field1" value="<?php echo isset($_POST["field1"]) ? $_POST["field1"] : ''; ?>" size="32" class="stylingclass">

您可以使用基本三元运算符设置值参数:

<input name="field1" type="text" id="field1" value="<?php echo isset($_POST["field1"]) ? $_POST["field1"] : ''; ?>" size="32" class="stylingclass">

我是否可以利用我在代码前面设置的变量(当
$submitted==1
时)?这样,
$field1
在提交后会立即收到来自
$\u POST
的输入。当然可以,但您应该在事后评估之前定义变量。那么您就不需要我上面给出的代码示例中的ternaly了,它与我表单中的代码自上而下非常匹配,同时删除表单的字段名并添加替换名/数据,同时省略了大量已经有效的多余的不相关的cruft。考虑到这一点,在一切开始时,我首先检查表单是否已提交(请参阅我在if中检查的位置),如果已提交,我将从
$\u POST
中获取数据并将其转换为变量。这是否足够?还是我应该用你的建议和三元数?(在代码中输入
$\u POST
一千次是有害的:/)不,我会在if($\u POST[“submitted”]==1)行之前首先定义预期的变量。然后在后评估中,重新指定这些字段的值。如果你这样做的话,三元结构可能会变得杂乱无章,不必要。我只是在我的答案中提出这个建议,因为您在评估后定义了变量。*查看实际代码**facepalms*我应该在if之前初始化该变量。。。我的错!:P在改变了这一点之后,一切都会好起来的!:)谢谢你的帮助!我是否可以利用我在代码前面设置的变量(当
$submitted==1
时)?这样,
$field1
在提交后会立即收到来自
$\u POST
的输入。当然可以,但您应该在事后评估之前定义变量。那么您就不需要我上面给出的代码示例中的ternaly了,它与我表单中的代码自上而下非常匹配,同时删除表单的字段名并添加替换名/数据,同时省略了大量已经有效的多余的不相关的cruft。考虑到这一点,在一切开始时,我首先检查表单是否已提交(请参阅我在if中检查的位置),如果已提交,我将从
$\u POST
中获取数据并将其转换为变量。这是否足够?还是我应该用你的建议和三元数?(在代码中输入
$\u POST
一千次是有害的:/)不,我会在if($\u POST[“submitted”]==1)行之前首先定义预期的变量。然后在后评估中,重新指定这些字段的值。如果你这样做的话,三元结构可能会变得杂乱无章,不必要。我只是在我的答案中提出这个建议,因为您在评估后定义了变量。*查看实际代码**facepalms*我应该在if之前初始化该变量。。。我的错!:P在改变了这一点之后,一切都会好起来的!:)谢谢你的帮助!