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 "ne" se obsah tohoto divu vymaže
-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>
Tady se počítá s tím, že máš nadefinovanou funkci smaz().
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
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
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

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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