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
![]() |
||
jenikkozak Profil |
#2 · Zasláno: 22. 10. 2010, 10:20:43
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 |
#3 · Zasláno: 22. 10. 2010, 11:43:27
[#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'); 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. |
||
Časová prodleva: 15 let
|
0