2013-04-25 148 views
0

现在我有一个输入文字,广播,和一个提交按钮..表单输入值提交

可以说,我的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

而这个页面仍然有..按钮

的问题是..之后,我点击一个按钮牛逼第1页= image-search.php

我希望用户输入值保持在名称的输入文本..

,以及如何使复选框为选中根据用户的选择呢?

+0

您可以通过HTML5做本地存储..store值对形式提交,当你想 – 2013-04-25 16:49:21

+0

我不知道HTML5在所有破坏本地存储。任何想法使代码? =) – kampung30 2013-04-25 16:52:15

回答

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

如果URL不包含'name','arrange'等参数,这将触发警告,所以您在这里需要一些'isset()'。 +1 – 2013-04-25 17:31:54

+1

尝试先检查'$ _GET [key]'是否存在,然后再回显它的值,否则会得到未定义索引错误。 – 2013-04-25 17:32:54

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标签 -

<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) ?>');这创建了本地JSON对象可用的Javascript - 和我们在页面末尾添加的脚本..循环遍历所有元素并调用__setPostBackValue函数。我们在哪里通过Javascript设置元素的值。

这有点棘手,但它的作品..!

PS:我的页面没有单选按钮,但是如果你有,你可以很容易地添加它。

-Paresh Rathod