Autor Zpráva
Fisak
Profil
Dobrý den. Mám ajax na změnu bez nutnosti refreshe a načtení scriptu bez nutnosti refreshe. Bohužel mi to načtení scriptu bez refreshe nefunguje. Tzn. onsubmit="updateAjax()"
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
 
    function updateDb(smer) {   
        var datastring = 'pohyb='+ smer;
        $.ajax({
        type: "POST",
        url: "pohyb.php",
        data: datastring
        });
 
        return false;
 
    }
 

var xmlHttp;

function initAjax() {
    try {
        xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
    } catch(e) {
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
        } catch(e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                alert("No AJAX!?");
                return false;
            }
        }
    }

    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState == 4) {
            document.getElementById('ReloadThis').innerHTML = xmlHttp.responseText;
        }
    }
}

function updateAjax() {
    xmlHttp.open("GET", "vypis.php", true);
    xmlHttp.send(null);
}

window.onload = function() {
    initAjax();
}
</script>

<form method="post"  onsubmit="updateAjax()">
    <input type="submit" name="nahoru" value="Nahoru" onclick="return updateDb('nahoru')"/>
    <input type="submit" name="dolu" value="Dolu" onclick="return updateDb('dolu')"/>
    <input type="submit" name="doleva" value="Doleva" onclick="return updateDb('doleva')"/>
    <input type="submit" name="doprava" value="Doprava" onclick="return updateDb('doprava')"/>
    
</form>  
Rfilip
Profil
Dej sem kompletní kod protože ti části html chybí. Na řádku 37 (document.getElementById('ReloadThis').innerHTML = xmlHttp.responseText;) chceš dát odpověď serveru do elementu s id ReloadThis který tu nevidím..
juriad
Profil
Fisak:
Proč motáš jQuery.ajax s XMLHttpRequestem?
updateDb vždy vrací false, takže na submit formuláře nikdy nedojde, a tudíž updateAjax se nikdy nezavolá.
Fisak
Profil
Rfilip:
tohle je kompletní kod nemám nic jiného jen pohyb.php a vypis.php a když přidám <span id="ReloadThis" ></span> tak se stejně nic nevypíše...
Fisak
Profil
juriad:
Má prosím nějaký návod jak by to mělo vypadat v jQuery ? Nebo co bych měl udělat aby toto fungovalo ?


zkusil jsem toto:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
 
    function updateDb(smer) {   
        var datastring = 'pohyb='+ smer;
        $.ajax({
        type: "POST",
        url: "pohyb.php",
        data: datastring  
        });
 
        return false;
 
    }
 
   function updateAjax() {
        $.ajax({
            type: 'POST',
            url: 'vypis.php',
            data: mdlno,
            success: function (data) { 
              // $("#viewlist")[0].innerHtml = data; 
               //or 
               $("#ReloadThis").html(data);
             }
        });
      return false; //prevent default action(submit) for a button
    });
    
</script>
 <span id="ReloadThis"></span> 
<form method="post"  onsubmit="updateAjax()">
    <input type="submit" name="nahoru" value="Nahoru" onclick="return updateDb('nahoru')"/>
    <input type="submit" name="dolu" value="Dolu" onclick="return updateDb('dolu')"/>
    <input type="submit" name="doleva" value="Doleva" onclick="return updateDb('doleva')"/>
    <input type="submit" name="doprava" value="Doprava" onclick="return updateDb('doprava')"/>
    
</form>  
ovšem to taky nefunguje
juriad
Profil
O co se vlastně snažíš? Pokud zmáčknu tlačítko, tak se provede pohyb.php. Kdy se má provést vypis.php?
Máš uvedeno, že až se bude odesílat formulář, jenže ten se nikdy nebude odesílat, protože v reakci na stisk tlačítka událost rušíš (řádek 12).
Fisak
Profil
juriad:
aha ... No chtěl bych vždy vypsat soubor "vypis.php" a pokud se zmáčkne nějaký button tak by se "vypis.php" znovu načetl ale bez refreshe stránky
juriad
Profil
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
 
    function updateDb(smer) {   
        var datastring = 'pohyb='+ smer;
        $.ajax({
        type: "POST",
        url: "pohyb.php",
        data: datastring,
        success: function() {
            $.ajax({
                type: 'POST',
                url: 'vypis.php',
                data: mdlno, /* co toto ma byt??? */
                success: function (data) { 
                   $("#ReloadThis").html(data);
                 }
            });
        }
        });
        return false;
    }
    
</script>
 <span id="ReloadThis"></span> 
<form method="post"  onsubmit="return false">
    <input type="submit" name="nahoru" value="Nahoru" onclick="return updateDb('nahoru')"/>
    <input type="submit" name="dolu" value="Dolu" onclick="return updateDb('dolu')"/>
    <input type="submit" name="doleva" value="Doleva" onclick="return updateDb('doleva')"/>
    <input type="submit" name="doprava" value="Doprava" onclick="return updateDb('doprava')"/>
    
</form>  
Fisak
Profil
juriad:
ve vypis.php je toto
<?php
 
$heslo  = "vertrigo";        
$server  = "localhost";
$login = "root";
$database = "system";
 
if (MySQL_Connect($server, $login, $heslo) && MySQL_Select_DB($database))
{ 
  
   $dotazNaMysql = mysql_query("select * from zkouska where type = 'pohyb'");
   while($hodnoty = mysql_fetch_assoc($dotazNaMysql)) {
        echo "<img scr=\"".$hodnoty['text'].".gif\" />";
    }
 
}
Právě rád bych aby se to vypsalo při načtení stránky co je aktuální ten .gif a pak při zmáčknutí submitu to jen aktualizovat. Bohužel toto nefunguje. Ani při načtení stránky ani při zmáčknutí submitu se nic neudělá

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: