Autor Zpráva
mahdy
Profil
Dobrý den lidičky,
upravil jsem si ajaxový zdroják, tak aby mi po určitých časových intervalech natahoval pomocí GETu externí php soubor, který obsahuje připojení k databázi a výpis dat pomocí echo.

Všechno funguje, jenomže chyba je v tom, že se neustále za sebou připojuje k databázi, což vede k tomu, že to po chvilce celé spadne.

Když dám funkci pro připojení do souboru s ajaxem (index) tak mi to píše errory, že se nepodařilo spojit s DBF.

Můj záměr:
Potřebuji po určitých intervalech automaticky tahat data z MysSQL databáze. Poradíte někdo?


index.php:

<script type="text/javascript">
Ajax();

  function Ajax(){
var xmlHttp;
    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 ;
       // setTimeout('Ajax()',1000);
    }
}
xmlHttp.open("GET","aaa.php",true);
xmlHttp.send(null);

setTimeout('Ajax()',1000);
}
    </script>
	
	<html>
	<div id="ReloadThis"></div>
	</html>

aaa.php:
<?php
mb_language("uni"); mb_internal_encoding("UTF-8");

  $kontrola_pripojeni = mysql_connect("localhost","root","");
  mysql_select_db("databaze");
  MySQL_Query("SET NAMES UTF8");

$vyber_vydrazene = mysql_query('SELECT cena_aktual from predmety WHERE stav="běží" ORDER BY id_predmetu DESC');

	echo mysql_result($vyber_vydrazene, 1, "cena_aktual");
?>

Budu Vám vděčný za každou radu
Aichi
Profil
To že ti to v PHP hází chyby bude asi tím, že máš něco špatně. Nicméně je dobře že máš tu inicializaci připojení v tom souboru aaa.php, který každou vteřinu voláš z JS. Pokud napíšeš ty chyby, třeba ti řekneme v čem je problém
mahdy
Profil
Nojo, ale pokud je ta inicializace v tom souboru aaa.php, tak to wamp (server) nezvládne a za nějaký čas, cca 30s hodí error.

Pokud dám inicializaci do indexu, chyba vypadá takto:


Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\Programy\wamp\www\test\aaa.php on line 3

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in D:\Programy\wamp\www\test\aaa.php on line 3

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in D:\Programy\wamp\www\test\aaa.php on line 5
Aichi
Profil
jak vypada ta chyba, pokud je to v tom aaa.php?!!!

kdyz ji tam nema, tak se to ocividne hlasi nejakym defaultnim userem k db a ten tam nema samosebou pristup. v cem je problem pri cteni chyb?
mahdy
Profil
už jsem to vyřešil tak, že jsem inicializaci nechal v aaa.php a spouštím ji jen když není přihlášen Session (jednoduchá podmínka)
mahdy
Profil
Lidičky, ještě jeden "tupej" dotaz.. Jak tahat ze souboru aaa.php proměnné? respektivě si kteroukoliv proměnnou z php přiřadit do kterékoliv proměnné v js.

Př. mám proměnnou v aaa.php $a = '......'; $b = '......'

a chci je přiřadit v js do proměnných a, b;


děkuji za případné návrhy
PetrM
Profil *
mahdy:
JSON ?
mahdy
Profil
PetrM:
mahdy:
JSON ?
co prosím?
mahdy
Profil
PetrM:
JSON ?
Tak už jsem si našel fci json_encode(), která mi zakoduje pole z php. Ale pak nevím jak to z toho js převést opět na php, vím jen jak to opět rozkodovat pomoci json_decode.
PetrM
Profil *
mahdy:
JSON hod do eval();
mahdy
Profil
Takže jsem celý kod prekopal... jenomže to nejede v IE 8

<script type="text/javascript">

var xmlHttp;
function VytvorXMLHttp(){
	var xmlHttp = false;
	if(window.ActiveXObject)
	  {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");}
	else if (window.XMLHttpRequest)
	  {xmlHttp = new XMLHttpRequest();}
	return xmlHttp;
}



function aktivujRequest(){
  xHttp = VytvorXMLHttp();
  xHttp.onreadystatechange = obsluhaStateChange;
  xHttp.open("GET", "../actions/ajax_act.php?vava=1", true);
  xHttp.send(null);
  
}

function obsluhaStateChange(){
	if(xHttp.readyState == 4 && xHttp.status ==  200){
	 //text = xHttp.responseText;
	 document.getElementById('xx').innerHTML = xHttp.responseText;
	}
}

aktivujRequest();


</script>
	
	<div id="xx"></div>

Můžete poradit kde je chyba?

Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
mahdy
Profil
V IE mi to z toho souboru nenatáhne proměnnou a vyhodí to chybu ze document.getElementById('xx') je prázdný.

Nevím kde by mohla být chyba.. I když dám saotný soubor ajax_act.php bez proměnné tak to echo nevypíše.

Mě to připadá jako by se zahltila cache. Ve FF a google chrome to valí. Prosím poraďte
_es
Profil
mahdy:
Presuň to <div id="xx"></div> pred ten skript.
Yur4Y
Profil
_es:
Presuň to <div id="xx"></div> pred ten skript.
Alebo window.onload = aktivujRequest;

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: