您好 我正在mvc系统视图中构建一个表单,我希望在表单提交失败的情况下保留所有插入的值。 如何做到这一点:我试着(对于一个领域的例子):
<label for="user_firstname">Nume</label>
<input id="user_firstname" type="text" name="user_firstname" value=<?= $_POST['user_firstmane'] ?> >
<? if (isset($errors['user_firstname'])): ?>
<span class="error"><?= $errors['user_firstname']; ?></span>
<? endif; ?>
但当然,它第一次不起作用(没有完成任何后期操作)。
最简单的方法是什么?任何想法?
谢谢
答案 0 :(得分:2)
在javascript中循环遍历DOM并将PHP $ _POST数据放入input.value
<script type='text/javascript'>
<?php
echo "var jsArray = new Array();";
foreach ($_POST as $key=>$value){
echo "jsArray['$key'] = '$value';"; //turn it into a javascript array
}
?>
// Grab all elements that have tagname input
var inputArr = document.getElementsByTagName("input");
// Loop through those elements and fill in data
for (var i = 0; i < inputArr.length; i++){
inputArr[i].value = jsArray[inputArr[i].name];
}
</script>
答案 1 :(得分:1)
value="<?php echo isset($_POST['user_firstname'])? $_POST['user_firstname'] : "" ?>"
答案 2 :(得分:1)
我会建议像:
<label for="user_firstname">Nume</label>
<input id="user_firstname" type="text" name="user_firstname" value=<?(isset($_POST['user_firstname']) ? $_POST['user_firstname'] : ""; ?>>
<? if (isset($errors['user_firstname'])): ?>
<span class="error"><?= $errors['user_firstname']; ?></span>
<? endif; ?>
你在$ _POST [“user_firstmane”]中也有一个拼写错误应该是$ _POST [“user_firstname”]:)
答案 3 :(得分:1)
您的意思是您希望在未能提交表单时保留表单的价值?您可以使用$ _SESSION将值存储在检查页面中。例如:
check.php
<?php
session_start();
if (strlen($_POST['user_firstname']) < 5) { //for example
$_SESSION['user_firstname'] = $_POST['user_firstname'];
}
?>
以您目前的形式。将value=<?= $_POST['user_firstmane'] ?>
更改为value="<?=$_SESSION['user_firstname']?>"
,所以:
<label for="user_firstname">Nume</label>
<input id="user_firstname" type="text" name="user_firstname" value="<?=$_SESSION['user_firstname']?>" />
<? if (isset($errors['user_firstname'])): ?>
<span class="error"><?= $errors['user_firstname']; ?></span>
<? endif; ?>
答案 4 :(得分:0)
<input id="FirstName" name="FirstName" placeholder="First name" title="First Name" required="" tabindex="1" type="text" value="<?php if(isset($_POST['FirstName'])){ echo htmlentities($_POST['FirstName']);}?>"/>
在提交表单失败后,此代码更容易保留表单信息。