| 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: 14 let
|
|||
0