Autor | Zpráva | ||
---|---|---|---|
Petroff Profil |
#1 · Zasláno: 24. 2. 2008, 09:48:28
Potřebuji odeslat data (obsah 2 INPUTů) a to tak, aby obsah stránky nebyl aktualizován (změněn).
Lze nějak použít <form action="xxx.php"> ? Pokud ne, existuje nějaký jiný způsob? (má to být JS alternativa využívající css okno s formem, zobrazené pomocí JS) <a href="pro_vypnuty_JS_je_FORM_otevren_v_novem_tabu.php?..." target="_blank" onclick="zobraz_CSSform();return false">ADD COMMENT</a> |
||
Str4wberry Profil |
#2 · Zasláno: 24. 2. 2008, 10:18:28 · Upravil/a: Str4wberry
|
||
Petroff Profil |
#3 · Zasláno: 24. 2. 2008, 10:56:58 · Upravil/a: Petroff
Ještě k tomu FORMu (rád bych měl jednou provždy jasno):
Jestli je v něčem podobný <a> a lze nastavit target, který bude přepsán ....šel by použít nějaký neviditelný prvek jako cíl (iframe)? Nebo FORM neodesílat: onsubmit="posliDATA(); hideFORM(); return false" a pro data použít script.src="xxx.php?...." |
||
Leo Profil |
#4 · Zasláno: 24. 2. 2008, 11:23:01
Potrebujete odezvu ze serveru na to odeslani formulare? Leo
|
||
Petroff Profil |
#5 · Zasláno: 24. 2. 2008, 15:58:18
AJAX není nutný, jen to odeslat
|
||
Časová prodleva: 10 dní
|
|||
Petroff Profil |
#6 · Zasláno: 5. 3. 2008, 08:40:34 · Upravil/a: Petroff
Už jsem na to přišel, mám to i s odezvou => po úspěšné akci PHP odešle javascriptový kód (pro aktualizaci stránky přidaným komentářem), který se automaticky spustí.
<script> function showForm(){document.getElementById("vstupniokno").style.display="block "} function hideForm() {document.getElementById("vstupniokno").style.display="none"} function sendData(f){ var hlavicka = document.getElementsByTagName('head')[0]; var dataLoader = document.getElementById('scriptLoader'); if (dataLoader) hlavicka.removeChild(dataLoader); /*** opakované použití ***/ dataLoader = document.createElement('script'); dataLoader.id = 'scriptLoader'; dataLoader.src = 'send_koment.php?meno='+f.meno.value+'&text='+f.text.value; hlavicka.appendChild(dataLoader); /*** PHP uloží data do DB a vygeneruje JS tvořený voláním updateHTML($line) ***/ f.text.value=""; } function updateHTML(line){document.getElementById('komentare').innerHTML += line} </script> <a href="pridaj_koment.php?id=41&nav=3Dhry" target="_blank" onclick="showForm();return false">Přidat komentář k této hře</a> <div id="vstupniokno"> <form method="get" action="#" onsubmit="sendData(this); hideForm(); return false"> <label for="meno">Meno :</label> <input type="text" id="meno" name="meno" size="20" /> <label for="text">Text :</label> <textarea rows="5" id="text" name="text" cols="25"></textarea> <input type="submit" value="Pridať komentár" id="sbm" name="B1" /> </form> </div> ============ send_koment.php ========================== <?php require "../conf.php"; $ncas = time(); $dnes = Date("Y-m-d"); $text = htmlspecialchars($text); $result = MySQL_Query("INSERT INTO komentare VALUES ('', '$meno', '$text', NOW(), '$id', '$nav')"); echo "updateHTML(\"($dnes)<strong>$meno</strong><p>$text</p>\");"; ?> |
||
Časová prodleva: 16 let
|
0