How To Retain Javascript Array While Page Refresh?
Solution 1:
Use localStorage API for this purpose, Use setItem() method and do stringify the array before storing into the localStorage.
You can retrieve the stored item by getItem() and parse the stored array using JSON.parse(), something like
if(localStorage.getItem('textValues') == null){
var myArray =[];
}else{
myArray = JSON.parse(localStorage.getItem('textValues'));
//-----------^parse the item by getting---^--stored item
}
functionaddItemToArray(){
myArray.push(document.getElementById("txtMyText").value);
localStorage.setItem('textValues', JSON.stringify(myArray));
//------------^store the item by stringify--^
}
Solution 2:
You could use the browser's internal storage: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage
Store the array:
sessionStorage.setItem("items", JSON.stringify(items));
Get the array from storage:
var items = JSON.parse(sessionStorage.getItem("items"));
Solution 3:
To retain it on refresh you are going to need to store in local storage. localStorage.setItem("storageName", myArray) then to retrieve it localStorage.getItem("storageName") or var myArray = localStorage.getItem("storageName")
Solution 4:
If you want to use a PHP session, I would take advantage of AJAX. You'll need to create a file to handle the array as you create it. Here's a simple example.
Your first page
<?php//start the PHP session to save your array in
session_start();
?><scripttype="text/javascript">var myArray = [];
<?phpif(isset($_SESSION['myArray'])) {
foreach($_SESSION['myArray'] as$item){
// prepopulate the session array from PHPecho"myArray[] = ".$item.";";
}
}
?>functionaddItemToArray(){
var addvalue = document.getElementById("txtMyText").value;
myArray.push(addvalue);
if (window.XMLHttpRequest){ var xmlhttp=newXMLHttpRequest(); }else { var xmlhttp=newActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("myDiv").innerHTML += xmlhttp.responseText .", ";
}
}
xmlhttp.open("GET","save_array.php?newValue="+,true);
xmlhttp.send();
}
</script><divid="show_my_array"><?php//show array saved from last timeif(isset($_SESSION['myArray'])) {
foreach($_SESSION['myArray'] as$item){
// prepopulate the session array from PHPecho$item.", ";
}
}
?></div><inputtype="text"id="txtMyText"><buttontype="button"id="myButton"onclick="addItemToArray()">Add to Array</button>save_array.php
<?php
session_start();
if(!isset($_SESSION['myArray'])){
$_SESSION['myArray'] = array();
}
$_SESSION['myarray'][] = $_GET['newValue'];
echo$_GET['newValue'];
?>Solution 5:
probably the easiest way would be using jQuery cookie
edit var myArray = [] /edit
if ($.cookie('arrayItems')){
myArray=JSON.parse($.cookie('arrayItems'));
}
functionaddItemToArray()
{
myArray.push(document.getElementById("txtMyText").value);
$.cookie('arrayItems',JSON.stringify(myArray));
}
Post a Comment for "How To Retain Javascript Array While Page Refresh?"