将默认值保留为文本框中的隐藏字段

时间:2014-07-29 15:40:46

标签: javascript php jquery parameter-passing

我在传递隐藏字段方面遇到了一些麻烦,而且主要是收到未定义的索引错误。

我尝试做的是拥有原始默认文本框值"如果更改并提交,则#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>

1 个答案:

答案 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