$_GET težava

Zdravo,

Vem, veliko sprašujem zadnje čase, a ve da so/ste tukaj mojstri, ki znajo/znate skoraj vse :)

Torej, imam link, ki je nekako tak: <a href="{$smarty.server.REQUEST_URI}&cid={$product.company_id}">

cid je variabla, odvisna od tega, na kateri link se klikne, je pa res da ob kliku stran ostane na istem mestu, le refresh se zgodi...
Torej, ob kliku nato v drugem divu naredim:
$cid= $_GET['cid'];
ter nato za test še
echo $cid;

V prvem poizkusu stvar uspe bp, v drugem in nadaljnih pa ne, ampak kaže vrednost prvega klika. Edino če pobrišem cache strani in sam naredim refresh, potem je ok...Drugače pa ne in preprosto ne dela.

Torej, kako lahko na nek način pobrišem/izpraznim $cid variablo, ali na kak drug način osvežim njeno vrednost?

Še tole, url se pravilno zamenja ob kliku in stran se pravilno osveži.

lp

2 odgovora

Sicer nisem prepričan če sem pravilno razumel ampak morda lahko poizkusiš

if( isset($_GET['cid']) ) {
    $cid = intval($_GET['cid']);
} else {
    $cid = $product.company_id;
}

Verjetno bi moral potem zamenjati v linku ...
&cid=$cid
namesto
&cid={$product.company_id}

Verjetno imaš problem zato, ker ti brskalnik cache-ira AJAX requeste.
Tukaj imaš kup rešitev: http://stackoverflow.com/questions/367786/prevent-caching-of-ajax-call
Osebno uporabljam headerje v PHP:

$this->output->set_header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
$this->output->set_header("Pragma: no-cache");
$this->output->set_header("Last-Modified: " . gmdate(DATE_RFC2822) . " GMT");
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0", FALSE);