Autor Zpráva
davef6
Profil
Mám problém s nefungujícím ajaxem, napíše mi to že vše proběhlo v pořádku, ale do db se nic nezapíše

function send_xmlhttprequest(state_change, method, url, content, headers) {
    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
    if (!xmlhttp) {
        return false;
    }
    xmlhttp.open(method, url);
    xmlhttp.onreadystatechange = function () {
        state_change(xmlhttp);
    };
    if (headers) {
        for (var key in headers) {
            xmlhttp.setRequestHeader(key, headers[key]);
        }
    }
    xmlhttp.send(content);
    return true;
}

function hodnotit(znamka) {
    // odeslání požadavku na aktualizaci dat
    if (!send_xmlhttprequest(hodnotit_obsluha, 'GET', 'hodnoceni_srandovnivideo.php?id=<?php echo $id_videa; ?>&i_u=<?php echo $id_uziv; ?>&znamka=' + znamka)) {
        return false;
    }
    document.getElementById('stav_h').innerHTML = 'Probíhá hodnocení.';
    return true;
}


function hodnotit_obsluha(xmlhttp) {
if (xmlhttp.readyState == 4) {

document.getElementById('stav_h').innerHTML = 'Děkujeme za ohodnocení tohoto videa.';

}
}


k tomu mám extra soubor hodnoceni_srandovnivideo.php

  $id = $_GET['id'];
  $znamka = $_GET['znamka'];
  $id_uziv = $_GET['i_u'];
  $pocet_legracni_videa = mysql_fetch_row(MySQL_Query("SELECT COUNT(id) FROM kontrola_hodnoceni_legracni_videa WHERE id_legracni_videa='$id' AND id_uziv='$id_uziv'"));

    if ($pocet_legracni_videa[0] == 1)
	  echo $hodnoceni = 0;
    else
	{
	  if (isset($i_u))
	  {
        $hodnot_prumer = (($pocet * $prumer) + $znamka) / ($pocet+1);
        mysql_query("UPDATE videa SET hodnot_pocet=hodnot_pocet+1 where id = '$id'");
        mysql_query("UPDATE videa SET hodnot_prumer = $hodnot_prumer where id = '$id'");
        mysql_query("insert into kontrola_hodnoceni_legracni_videa VALUES ('', '$id', '$id_uziv')");
        echo $hodnoceni = 1;
	  }
	}


a volám to přes
				<p id="stav_h"></p>
				<div id="hodnoceni">
                <span class="hodnot">STRAŠNÁ&raquo; </span>
                <ul class="star-rating">
                  <li><a href="#" onclick="return !hodnotit(1);" title="1 hvězda z 5" class="one-star">1</a></li>
                  <li><a href="#" onclick="return !hodnotit(2);" title="2 hvězdy z 5" class="two-stars">2</a></li>
                  <li><a href="#" onclick="return !hodnotit(3);" title="3 hvězdy z 5" class="three-stars">3</a></li>
                  <li><a href="#" onclick="return !hodnotit(4);" title="4 hvězdy z 5" class="four-stars">4</a></li>
                  <li><a href="#" onclick="return !hodnotit(5);" title="5 hvězd z 5" class="five-stars">5</a></li>
	</ul>
	<span class="hodnot2"> &laquo;NEJLEPŠÍ</span></div>


co může být špatně? když spustím ten skript hodnotit_srandovnívideo.php, tak se vše provede dobře
Shulík
Profil
Můžeš to, prosím, někam nahrát? Jediný problém, co tu vidím já je, že v PHP souboru máš
if (isset($i_u))
, přičemž žádnou proměnnou $i_u jsi předtím nepoužil. Nemělo tam být $id_uziv? Nebo máš zapnuté register_globals a je to jedno?

EDIT: Popřípadě zkus vypsat mysql_error (http://php.net/manual/en/function.mysql-error.php).
EDIT2: Ten JS soubor vypisuješ PHP, že tam máš pár kousků PHP kódu?
davef6
Profil
ano díky, u toho
if (isset($i_u))
jsem zkopíroval špatný text, samozřejmě ve skriptu to mám dobře. Bylo to špatným zadáním cesty v řádku
if (!send_xmlhttprequest(hodnotit_obsluha, 'GET', 'hodnoceni_srandovnivideo.php?id=<?php echo $id_videa; ?>&i_u=<?php echo $id_uziv; ?>&znamka=' + znamka)) {

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: