Autor Zpráva
BedyR
Profil
Dobrý den,
pomohl by mi někdo s tímto dvěmi problémy ?

1.
Nové okno se otevře.
Refrešne se staré okno.
Bohužel nedojde k inicializaci _POST v starém okně ( ani v novém okně ).



<div id="dot" >
  <form method="post" action="stary.php" target="_self" enctype="cs">
     <a id="dotano" href="nove.php" target="nove" onclick="window.location.reload()">Spustit</a>
     <input type="hidden" name="spust" value="ANO" /> 
  </form> 
  <form method="post" action="./stary.php" enctype="cs">
     <input id="dotne" name="dotne" accesskey="c" title="Zrušení akce" value="Ne" type="submit"/>
  </form>
</div>




2.
Zobrazení tohoto výběrového rámečku vyvolá tlačítko "Přenos dat".
Pokud stisknu "Ne" vrátí mě to spět k tlačítku "Přenos dat".
Pokud opět stisknu "Přenos dat" a pak "Spustit" objeví se hláška prohlížeče "K opětovnému zobrazení ...." s tlačítky "Opakovat" a "Storno". Lze se této hlášky nějak zbavit ?
Zkoušel jsem vyprázdnit $_POST a $HTTP_POST_VARS respektive 'unset',ale nejspíš je to věc prohlížeče.

Díky.

Moderátor Mistr: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ), nikoliv do značek [kod] a [/kod].
jenikkozak
Profil
Při kliknutí na odkaz samozřejmě nedochází k odeslání formuláře, proto $_POST[spust] nemůže v novém okně existovat. Stejně tak nedojde k odeslání formuláře při reloadu stránky v případě, že předtím nebyl tento formulář odeslán. Dojde pouze k odeslání původního formuláře, čemuž se prohlížeč brání uvedenou hláškou. PHP funkce unset() proběhne až po odeslání dat metody POST, v tomto případě až poté, co prohlížeč přesvědčíte potvrzením uvedené hlášky, aby data odeslal znovu.
Z vašeho popisu jsem příliš nepochopil, čeho chcete tím prvním skriptem dosáhnout. Soudím však, že v případě odkazu bude lépe použít metodu GET. Případně chcete-li, aby kliknutím na odkaz došlo k odeslání formuláře, dejte mu id a k odeslání dojde funkcí submit:
<a onclick="document.getElementById('id_formulare').submit();">


BedyR:
Lze se této hlášky nějak zbavit ?
Ano, nepoužívat refresh stránky, na níž se posílají data pomocí metody POST.
BedyR
Profil
[#2 jenikkozak]
Díky. V podstatě šlo o to ,že jsem chtěl po stisku "Spustit" otevřít nové okno, které by provádělo PHP kód (dlouha doba zpracování) a původní okno by se na základě hodnoty z POSTu přeplo do nového zobrazení s hlavičkou s automatickou refreší po určité době, zobrazovalo průběh zpracování na základě hodnot uložených $_SESSION.

Kdyby šlo spustit paralelně PHP kód nemuselo by se otvírat nové okno, ale
 header('Location: ./zpracovani.php'); 
to neřeší.
Nové okno slouží pouze k spuštění skriptu "zpracvani.php"("nove.php"). Takže nevadí když ho uživatel zavře.

Jeli nějaké jiné řešení, které mně momentálně nenapadá nechám se rád poučit.
Dík.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0