我在传递隐藏字段方面遇到了一些麻烦,而且主要是收到未定义的索引错误。
我尝试做的是拥有原始默认文本框值"如果更改并提交,则#34;新的默认值作为新值传回文本框,并在此提交后保留。
例如,让我们说这四个文本框中每个文本框的默认值是它上面标题的名称(文本框1,文本框2等)。如果我希望将这些默认值中的任何一个更改为其他写入的内容,我还需要做些什么? (例如文本框A,文本框B等)?
“重置”按钮需要能够将任何新值更改为原始默认值。除非我另有建议,否则我可能会计划使用Javascript进行此操作,因为我已经希望重置按钮也会删除显示信息的div。
有什么想法吗?
<script type="text/javascript">
function customReset(){
var div = document.getElementById("answers");
div.parentNode.removeChild(div);
}
</script>
<h3 style="margin-bottom:2px;">Enter Current Variables:</h3>
<form class="variables" method="post" action="calc.php">
<h4>Text Box 1:</h4>
<input class="box" type="text" name="text1" value="<?php print $text1;?>" required>
<h4>Text Box 2:</h4>
<input class="box" type="text" name="text2" value="<?php print $text2;?>" required><br>
<h4>Text Box 3:</h4>
<input class="box" type="text" name="text3" value="<?php print $text3;?>" required><br>
<h4>Text Box 4:</h4>
<input class="box" type="text" name="text4" value="<?php print $text4;?>" required><br>
<input type="hidden" name="text1_default" value="text1_default" />
<input type="hidden" name="text4_default" value="text4_default" />
<input type="hidden" name="text3_default" value="text3_default" />
<input type="hidden" name="text4_default" value="text4_default" />
<br><input type="submit" name="button" value="Calculate"><input type="button" value="Reset" onClick="customReset()">
<?php
$array_check = array('text1', 'text2', 'text3', 'text4');
foreach($array_check AS $key => $value) {
if(!isset($_POST[$value])) {
$_POST[$value] = $_POST[$value."_default"];
}
}
?>
</form>
答案 0 :(得分:0)
你的foreach没用,你的隐藏字段在第一次运行时没有$ _POST。
它将在提交后设置,然后在您的文件calc.php中设置。 如果calc.php与上面显示的相同,则设置$ _POST []并且永远不会运行
if(!isset($_POST[$value]))
你的数组也没有值
array('text1', 'text2', 'text3', 'text4');
带键和值的数组
array('text1' => 'val1', 'text2' => 'val2', 'text3' => 'val3', 'text4' =>'val4');
如果你想获得隐藏字段中设置的内容(提交后)
<input type="hidden" name="text1_default" value="text1_default" />
if ($_POST["button"] == "Calculate") {
[...]
$array_check('text1' => 'v1', 'text2' => 'v2', 'text3' => 'v3', 'text4' =>'v4');
foreach($array_check AS $key => $value) {
if(!isset($_POST[$key])) {
$_POST[$key] = $_POST[$key."_default"];
} else { echo $_POST[$key];}
}
}
现在更改$_POST[$key]
后,您无法将其用于<form>
您无法更改表单中的任何内容。 php在服务器上运行。
要更改表单值,您必须使用客户端库,例如javascript