如何在页面刷新时保留随机生成的HTML文本字段的值?

时间:2014-03-30 02:57:01

标签: javascript php html

我正在运行时创建HTML文本,就像我的代码一样。

<?php
session_start();
for(var i=1;i<=10;i++)
{ 
?>
    <div id="mainDiv<?php echo $i; ?>">
        <input type="text" id="myText<?php echo $i; ?>">
        <button type="button" id="myButton<?php echo $i; ?>" onclick="myButtonClicked()">Click Me</button>       
    </div>
<?php
}
?>

工作正常。现在的问题是保留这些文本框的值。刷新页面时,之前输入的所有值都消失了。我是否需要创建10个会话以保留这10个文本的值?或者,还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用locaStorage api在页面刷新后通过store / get / from localStorage保留用户输入。 setItem()getItem()分别用于存储和获取localStorage中的项目。

示例

这个 html 将由php

创建
<input type="text" id="text1" value="" />
<button type="button" id="myButton1" onclick="myButtonClicked('text1')">Click Me</button>

<input type="text" id="text2" value="" />
<button type="button" id="myButton1" onclick="myButtonClicked('text2')">Click Me</button>       
//like this other input and button will be created.

<强> JS

if(localStorage.getItem('resArr') == null){
    var resultArr = [];
}else{
    resultArr = JSON.parse(localStorage.getItem('resArr'));
    //---- get stored item from localStorage by json parsing
}

alert('the last item you entered is ' + resultArr[resultArr.length-1]);
function myButtonClicked(id){
    var userVal = document.getElementById(id).value;
    resultArr.push(userVal);
    localStorage.setItem('resArr', JSON.stringify(resultArr));
    //stored the entered value in localStorage by doing stringify
}

DEMO

答案 1 :(得分:1)

我不知道这是否会对你有所帮助 但你可以通过提交给php_self的表单来实现你想要的东西..

<?php

//create blank array for storing text box values
for($i=1;$i<=10;$i++){
   $textValue[$i]='';}

//if page reached via submission of button, store posted text box values in array
if(isset($_POST['myButton'])){
   for($i=1;$i<=count($textValue);$i++){
      $textValue[$i]=$_POST['myText'.$i];}}

?>

 <!--create form that submits to same page-->
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data" name="main">

<?php

//loop creates text boxes and buttons while getting text box default values from $textValue Array
for ($i=1;$i<=count($textValue);$i++){ 
   echo '<div id="mainDiv'.$i.'">
   <input type="text" id="myText'.$i.'" name="myText'.$i.'" value="'.$textValue[$i].'"/>
   <button id="myButton'.$i.'" name="myButton" value="myButton'.$i.'">Click Me</button>    
</div>
';}

?>

</form>