提交后剩余的表单输入值

时间:2013-04-25 16:47:48

标签: php html forms

现在我有输入文字,收音机和提交按钮..

让我说url = image-search.php

<form>
<input type="text" name="name"><br>
<input type="radio name="arrange" value="horizontal"><br />
<input type="radio name="arrange" value="vertical"><br>
<input type="submit" name="submit"><br>

当我点击按钮时.. 它会重定向同一页面,但url = image-search.php?name=ss&arrange=horizontal

此页面仍然有按钮..

问题是......在第一页点击按钮= image-search.php

之后

我希望用户输入值保留在名称的输入文本中。

以及如何根据用户选择复选框?

2 个答案:

答案 0 :(得分:3)

如果在提交表单时重新加载页面,您可以使用php为表单字段设置默认值

<form>
<input type="text" name="name" value="<?php echo isset($_GET["name"])?$_GET["name"]:""; ?>"><br>
<input type="radio" name="arrange" value="horizontal"<?php echo (isset($_GET["arrange"])?($_GET["arrange"]=="horizontal"?" checked='checked'":""):""); ?>><br />
<input type="radio" name="arrange" value="vertical"<?php echo (isset($_GET["arrange"])?($_GET["arrange"]=="vertical"?" checked='checked'":""):""); ?>><br>
<input type="submit" name="submit"><br>
</form>

答案 1 :(得分:0)

以下是您的问题的答案..希望这将有助于每个人.. @Macke - 你提交后设置值的方法非常好,但是当我们在表单上有很多元素时......让我们说1000 - 它在AS *中变得很痛苦。

在页面的HEAD标记中添加此脚本标记 -

<script language="javascript" type="text/javascript">
    var obj = JSON.parse('<?= json_encode($_REQUEST) ?>');
    console.log(obj);

    function __setPostBackValue(element){
        if(obj.length <= 0) return;
        var type = element.type;
        var fval;
        console.log('Processing...'+ element.name);
        try{
            eval('fval = obj'+'.'+element.name);
        }
        catch(ex){

        }
        if(type == 'text'){
            element.value = fval; 
        }
        if(type == 'checkbox'){                    
            if(fval != undefined)
                element.setAttribute("checked","on");                        
        }
        if(type == 'radio'){                    
            if(fval != undefined && element.value == fval)
                element.setAttribute("checked","on");                        
        }

    }

</script>

并在页面底部,是在页面底部(在正文结束之前)添加另一个脚本标记 -

<script language="javascript" type="text/javascript">
            var fields = document.getElementsByTagName('input');
            for(var i=0;i<fields.length;i++){
                __setPostBackValue(fields[i]);
            }
        </script> 

它做什么? 当您提交表单时,var obj = JSON.parse('<?= json_encode($_REQUEST) ?>');这将创建Javascript可用的本地JSON对象 - 以及我们在页面末尾添加的脚本。遍历所有元素并调用__setPostBackValue函数。我们在哪里通过Javascript设置元素的值。

这有点棘手,但它有效.. !!

PS:我的页面中没有单选按钮,但如果有,可以轻松添加。

-Paresh Rathod