5

I have a string value saved in to a variable, my webpage auto reloads after a certain process.. I need to know if I can get the value stored in that variable even after page refresh?

Im refreshing my web page using javascript code window.location.reload()

If not will it work if I take to server side script like php?

4

6 に答える 6

7

JavaScript:

  1. localStorage (HTML5 browsers only) - you could save it as a property of the page's local storage allowance

  2. save it in a cookie

  3. append the variable to the URL hash so it's retrievable via location.hash after the refresh

PHP

  1. save it as a session variable and retrieve it over AJAX each time the page loads

  2. save it in a cookie (might as well do the JS approach if you're going to cookie it)

Any PHP approach would be clunky as you'd have to first send the value of the variable to a PHP script over AJAX, then retrieve it over AJAX after reload.

于 2012-07-31T13:03:02.793 に答える
6

$_SESSIONこれを変数として格納できます。

session_start();

$myVar = null;

// some code here

if (!isset($_SESSION['myVar'])) {
    $_SESSION['myVar'] = "whatever";
} else {
    $myVar = $_SESSION['myVar'];
}
于 2012-07-31T13:01:41.000 に答える
0

Cookie/Webstorage/Session でこの変数を永続化する必要があります。Web ページはステートレスです。

于 2012-07-31T13:01:34.737 に答える
0

sessionはい、変数をサーバー側で値として、またはクライアント側でlocalstorage(またはとしてcookie)保存できます

于 2012-07-31T13:02:34.980 に答える
0

クッキーはあなたの友達です:

// Set a cookie or 2
document.cookie = 'somevar=somevalue';
document.cookie = 'another=123';

function getCookie(name)
{
    // Cookies seperated by ;   Key->value seperated by =
    for(var i = 0; pair = document.cookie.split("; ")[i].split("="); i++)
        if(pair[0] == name)
            return unescape(pair[1]);

    // A cookie with the requested name does not exist
    return null;
}

// To get the value
alert(getCookie('somevar'));
于 2012-07-31T13:04:27.290 に答える
0

JavaScript を使用すると、その変数を Cookie に保存し (ユーザーは Cookie を有効にする必要があります)、後で Cookie を取得できます。

アプローチは次のようなものです。

保存するには:

function setCookie(c_name,value)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + 1);
var c_value=escape(value);
document.cookie=c_name + "=" + c_value;
}

取得するには:

function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}

参照: http://www.w3schools.com/js/js_cookies.asp

于 2012-07-31T13:04:29.527 に答える