Autor Zpráva
SirDoxik
Profil
Dobrý den, mám takovýto script
<script>
        function ajax_post() {
                        var request = new XMLHttpRequest();
                        var url = "roulettefce.php";
                        var betsize = document.getElementById("bet").value;
                        var color = 1;
                        var user = userid;
                        var vars = "betsize="+betsize+"&user="+user+"&color="+color;
                        request.open("POST", url, true);
                        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                        request.onreadystatechange = function() {
                            if(request.readyState == 4 && request.status == 200) {
                                var return_data = request.responseText;
                                document.getElementById("status").innerHTML = return_data;
                            }
                        }

                        request.send(vars);
                        document.getElementById("status").innerHTML = "processing...";
                    }
        
        </script>
ale nic se po kliknutí na button nestane. V php mám pak jen echo 'Lorem i psům'; Nevíte co s tím? s Ajaxem je to moje první práce.
Daves
Profil *
SirDoxik:
Vhodným řešením je mít 1) formulář, 2) php file ze skriptem kde se bude formulář zpracovávat 3) tlačítko ve formuláři které aktivuje ajax. Například

 $.ajax({
                            type: "POST",
                            url: "Cesta k souboru kde se script zpracovává",
                            data: $("#idTvehoFormulare").serialize(),
                            beforeSend: function() {
                                $('body').append("<img src='View/Media/images/loader.gif' class='loader'>"); // zobrazení třeba loaderu než se formulář zpracuje
                            },
                            success: function(data) {
                                $(".loader").fadeOut();
                             alert(data); // výpis dat, když bude v souboru kde se zpracovává script echo 'Lorem i psům'; tak se v alertu ukáže Lorem i psům
                            }

                        });

Snad vám to pomůže :)
Chamurappi
Profil
Reaguji na Davese:
To by musel používat jQuery. Nedoporučuji.
Krom toho jsi nezjistil, v čem má problém, takže není jisté, že jsi ho odstranil.


Reaguji na SirDoxika:
V uvedeném kódu nevidím žádnou chybu. Pokud existuje globální proměnná userid, měl by fungovat. Nemáš živou ukázku?
_es
Profil
Daves:
Prečo to komplikuješ s nejakým jQuery? Ako mal SirDoxik prísť na to, čo tam robí ten dolár?

SirDoxik:
Dodaj živú ukážku, chyba môže aj inde, než v kóde v [#1].
SirDoxik
Profil
http://csgoroulette.tk/ tady. Funkce by se měla spustit po kliknutí na to start a text by se měl vypsat v takovém tom černou okýnku.
Radek9
Profil
SirDoxik:
Ono většinou stačí otevřít si konzoli a podívat se na chyby:
Uncaught ReferenceError: userid is not defined

Musíš tu proměnnou nejdřív definovat nebo to ID brát odjinud.
SirDoxik
Profil
Radek9:
Děkuju moc! já jsem tam plánoval to dosadit z php tak jsem si to tam jen napsal že to tam bude a zapomněl jsem na to.


Ještě jsem se chtěl zeptat, nechci zakládat nové vlákno ale když bych chtěl pomocí ajaxu dostat zpět javascript proměnou, jak na to? když jsem dal do PHP souboru echo '<script> var neco = neco<script> tak <script> zmizí ale proměnná se nevytvoří.
_es
Profil
[#7] SirDoxik:
To nie je dobrý nápad. Sprav to tak, aby si pracoval s vrátenými dátami. S tými môžeš robiť čo chceš, aj si ich ukladať do premenných - trebárs tak, ako je to v 13. riadku v [#1]. Metódou innerHTML nejdú vytvoriť skripty.
SirDoxik
Profil
_es:
už poslední věc, opravdu poslední .. nechci vás tu tak zdržovat.
<?php 
$mykeys = 1000;
$username = $_POST['user'];
$color = $_POST['color'];
$ammount = $_POST['betsize'];
$vysledek = mt_rand(1, 2);
 if (isset($_POST['odeslano'])) { 
     
        if ($mykeys<$ammount){
            $zprava = "Nemáte dostatečný počet kreditů";
        }
        else {
            if ($color==$vysledek) {

                $mykeys = $mykeys+$ammount;
                $zprava = 'Prohrali jste';

            }
            else {
                $mykeys = $mykeys-$ammount;
                $zprava = 'Vyhrali jste';

            }
        }
 }
echo $zprava;


?>
toto mi vrátí že proměnná není definována. Nevíte co je zde za chybu?
_es
Profil
[#9] SirDoxik:
Aká premenná? Kde? V PHP? V JS?...
SirDoxik
Profil
_es:
ta $zprava v php
Radek9
Profil
SirDoxik:
Pokud se to neodeslalo, tak je logicky nedefinovaná.
SirDoxik
Profil
SirDoxik:
$mykeys = $mykeys+$ammount;
$zprava = 'Prohrali jste';
jenže ona tam definovaná je
_es
Profil
SirDoxik:
A ten PHP skript je načítavaný pomocou [#1]? V PHP máš if (isset($_POST['odeslano'])) {... no v [#1] nikde POST hodnotu s názvom odeslano neposielaš.
SirDoxik
Profil
_es:
jej díky!

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: