Autor | Zpráva | ||
---|---|---|---|
tomica Profil |
Dobrý den,
potřeboval bych vytvořit script, který bude umět následující: -v divu se zobrazí otázka s tlačítky ano/ne <div>Přejete si tato data odeslat? <ul> <li>Ano</li> <li>NE</li> </ul> </div> -po zvolení možnosti "ano" se spustí php script a do divu se s 1sec spoždením napíše něco ve smyslu "odesláno" Děkuji za jakékoli rady či odkazy, javascript je pro mě jako španělská vesnice. |
||
Darker Profil |
Dělá se to pomocí eventu onclick. Event je funkce, která se spustí po určité akci. V HTML se dají eventy přiřazovat jako HTML atributy:
<li onclick="smaz();">Ne</li> Vymazání HTML můžeš použít pomocí DOM vlastnosti innerHTML (googli). Totéž platí pro vypsání "odesláno". Nápis odesláno může být také schovaný pomocý CSS a poté se zobrazit: /* předpokládám existenci elementu s ID "odeslano"*/ function odestli() { var element = document.getElementById("odeslano"); setTimeout(function() { element.style.display="inline"; }, 1000 //1sekunda ); } |
||
tomica Profil |
#3 · Zasláno: 2. 11. 2012, 23:09:10
Darker:
Šlo mi hlavně o volání php scriptu javascriptem, zapoměl jsem to do úvodního postu napsat. |
||
final Profil |
na to už je treba jQuery alebo samotný ajax
|
||
tomica Profil |
Tak jsem se to pokusil nějak sesmolit, nevíte v čem je chyba? Já v tom chybu nevidím :D
Následujícím scriptem se odešle php proměnná do php souboru, který vykoná svojí práci a řekne ANO/NE, zda byla práce úspěšně resp. neúspěšně vykonána. Následně pak script změní obsah celého divu. function odesli() { var XMLHttpRequestObject = false;if (window.XMLHttpRequest) { XMLHttpRequestObjekt = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttpRequestObjekt = new ActiveXObject("Microsoft.XMLHTTP"); } var input=document.getElementById("<?php $obsah_tabulky ?>"); var cilovyDiv = document.getElementById("cilovyDiv"); if(XMLHttpRequestObjekt) { XMLHttpRequestObjekt.open("POST","zpracuj.php", true); XMLHttpRequestObjekt.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); XMLHttpRequestObjekt.onreadystatechange = function() { if (XMLHttpRequestObjekt.readyState == 4 && XMLHttpRequestObjekt.status == 200) { if(XMLHttpRequestObjekt.responseText == "ANO"){ cilovyDiv.innerHTML = "Data byly úspěšně zaslány do databáze.";} if(XMLHttpRequestObjekt.responseText == "NE"){ cilovyDiv.innerHTML = "Data se nepodařilo zaslat do databáze, zkuste to prosím znovu.";}}} XMLHttpRequestObjekt.send("<?php $obsah_tabulky ?>="+input.value);}} <div id="cilovyDiv">Přejete si tato data odeslat? <ul> <li onClick="odesli();">Ano</li> <li>NE</li> </ul> </div> |
||
_es Profil |
#6 · Zasláno: 5. 11. 2012, 11:06:31
tomica:
„var input=document.getElementById("<?php $obsah_tabulky ?>");“ „XMLHttpRequestObjekt.send("<?php $obsah_tabulky ?>="+input.value);}}“ Čo teda ten PHP výraz vráti? Kde máš použitú metódu send ?: https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
|
||
Časová prodleva: 11 let
|
0