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在改变了这一点之后,一切都会好起来的!:)谢谢你的帮助!