Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

script ajax care nu ruleaza
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> AJAX
Subiectul anterior :: Subiectul următor  
Autor Mesaj
Infobahn



Data înscrierii: 03/Apr/2006
Mesaje: 8

Trimis: Joi Oct 12, 2006 4:48 pm    Titlul subiectului: script ajax care nu ruleaza  

Salutare tuturor,

Pe o distributie FreeBSD cu PHP versiunea 4.4.4 folosesc un script ajax.
Si merge foarte bine.

Incerc sa portez acelasi script pe o alta distributie Slack cu PHP versiunea 4.3.10. Aici nu mai merge.
Mai precis la instructiunile:
var raspuns = http.responseText;
alert(raspuns);

nu afiseaza nimic.
Unde gresesc?

Va multumesc anticipat!
Sus  
Infobahn



Data înscrierii: 03/Apr/2006
Mesaje: 8

Trimis: Joi Oct 12, 2006 5:01 pm    Titlul subiectului:  

Salutare,

Am uitat sa zic ca deschid aplicatiile din cele 2 locatii cu acelasi browser.

Va multumesc
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Joi Oct 12, 2006 5:05 pm    Titlul subiectului:  

Url-ul care-l ceri via AJAX, merge deschis direct? (eventual zi cum faci request-ul)
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Joi Oct 12, 2006 11:31 pm    Titlul subiectului:  

Da mai mult cod.
Sus  
Infobahn



Data înscrierii: 03/Apr/2006
Mesaje: 8

Trimis: Vin Oct 13, 2006 8:55 am    Titlul subiectului:  

Buna dimineata,

Iata codul din pagina js:

function createRequestObject(){
var request_o;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
request_o = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request_o = new XMLHttpRequest();
}
return request_o;
}

var http = createRequestObject();

function SchimbareCriteriu()
{
var selectie=document.getElementById('lstCriteriu').options[document.getElementById('lstCriteriu').selectedIndex].text;
http.open('get','ajax.php?actiune1=criteriu&id='+selectie);
http.onreadystatechange = RezultatSchimbareCriteriu;
http.send('');
}
function RezultatSchimbareCriteriu()
{
if(http.readyState == 4)
{
var raspuns = http.responseText;
document.getElementById('divCriteriu').innerHTML = raspuns;
}
}


In pagina php avem urmatorul cod:

echo "<select name='lstCriteriu' id='lstCriteriu' class='select' size=1 onChange='SchimbareCriteriu()'>
<option selected value>(Selectati criteriu)</option>
<option>clienti</option>
<option>furnizori</option>
<option>articole</option>
<option>certificate</option>
<option>facturi</option>
<option>comenzi</option>
</select>";
echo "<div align='center' id='divCriteriu'>";
echo "</div>";

Multumesc anticipat!
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Vin Oct 13, 2006 9:02 am    Titlul subiectului:  

in pagina in care ar tb. sa mearga ajax-ul respectiv, daca scrii manual la url:
[ce mai aveai tu p'acolo]ajax.php?actiune1=criteriu&id=1
obtii ceva?
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Vin Oct 13, 2006 9:10 am    Titlul subiectului:  

Da, sunt curios si eu de asta.

In plus, mai ai cumva alt output in script-ul PHP, inainte de acele echo-uri? Ala e tot script-ul? Verifica sa nu ai vreun spatiu gol sau enter dupa tag-ul de inchidere (?>).
Sus  
Infobahn



Data înscrierii: 03/Apr/2006
Mesaje: 8

Trimis: Vin Oct 13, 2006 9:39 am    Titlul subiectului:  

Buna ziua,

Daca scriu manual in url : ajax.php?actiune1=criteriu&id=1 nu imi intoarce nimic (in ambele cazuri...adica si unde merge si unde nu merge).

Codul php complet e urmatorul:

<?php
session_start();
include_once("configurare.php");
if ($_SESSION['logat_ok'])
{
include "header.php";

echo "<hr>";

echo "<div align='center' >";
echo "<font face='Verdana' size=2>Criterii de cautare :</font>
<table border='0' cellpadding='5' cellspacing='0' width='80%'>
<tr>
<td class='formatat' align='center'>
<select name='lstCriteriu' id='lstCriteriu' class='select' size=1 onChange='SchimbareCriteriu()'>
<option selected value>(Selectati criteriu)</option>
<option>clienti</option>
<option>furnizori</option>
<option>articole</option>
<option>certificate</option>
<option>facturi</option>
<option>comenzi</option>
</select>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<br>";

echo "<div align='center' id='divCriteriu'></div>";
echo "<div align='center' id='divRezultatCautare'></div>";
echo "<br>";

echo "<br>";

echo "<hr>";
include "footer.php";
}
else
{
echo "<html>";
echo "<head>";
echo "<meta http-equiv='refresh' content='0;url=login.php' />";
echo "</head>";
echo "<body bgColor='EAEFF4'>";
echo "<div align='center'>";
echo "<table border='0' cellpadding='1' cellspacing='0' width='100%' height='100%'>";
echo "<tr valign='middle'><td align='center'>";
echo "<font face='Verdana' size=4>Nu sunteti autentificat";
echo "</td></tr>";
echo "</div>";
echo "</html>";
}
?>
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Vin Oct 13, 2006 9:57 am    Titlul subiectului:  

oioai...

1. ceva tot ar trebui sa-ti afiseze. probabil sa intre pe else, daca nu exista $_SESSION['logat_ok']. nici nu genereaza vreo eroare?

2. tu vrei sa aduci toata bucata aia de cod html prin ajax? nu era mai simplu sa incluzi codul intr-un div cu display:none si sa-l afisezi ala direct? raspunsul: BA DA. ce ai facut tu e un exemplu de folosire gresita si de neintelegere a conceptului...

3. foloseste apostrof la echo si ghilimele la atributele elementelor html (ex. echo '<div align="center">'; )
Sus  
Infobahn



Data înscrierii: 03/Apr/2006
Mesaje: 8

Trimis: Vin Oct 13, 2006 10:37 am    Titlul subiectului:  

Multumesc Excalibur,

Ma tem ca am dat informatii gresite. De aceea voi fi mai explicit. Am 3 fisiere cu care lucrez:
1. cautare.php
<?php
session_start();
include_once("configurare.php");
if ($_SESSION['logat_ok'])
{
include "header.php";

echo "<hr>";

echo "<div align='center' >";
echo "<font face='Verdana' size=2>Criterii de cautare in aplicatia <b>Gestiune</b>:</font>
<table border='0' cellpadding='5' cellspacing='0' width='80%'>
<tr>
<td class='formatat' align='center'>
<select name='lstCriteriu' id='lstCriteriu' class='select' size=1 onChange='SchimbareCriteriu()'>
<option selected value>(Selectati criteriu)</option>
<option>clienti</option>
<option>furnizori</option>
<option>articole</option>
<option>certificate</option>
<option>facturi</option>
<option>comenzi</option>
</select>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<br>";

echo "<div align='center' id='divCriteriu'>";
echo "</div>";
echo "<div align='center' id='divRezultatCautare'>";
echo "</div>";
echo "<br>";

echo "<br>";

echo "<hr>";
include "footer.php";
}
else
{
echo "<html>";
echo "<head>";
echo "<meta http-equiv='refresh' content='0;url=login.php' />";
echo "</head>";
echo "<body bgColor='EAEFF4'>";
echo "<div align='center'>";
echo "<table border='0' cellpadding='1' cellspacing='0' width='100%' height='100%'>";
echo "<tr valign='middle'><td align='center'>";
echo "<font face='Verdana' size=4>Nu sunteti autentificat";
echo "</td></tr>";
echo "</div>";
echo "</html>";
}
?>

2. ajax.js
function createRequestObject(){
var request_o;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
request_o = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request_o = new XMLHttpRequest();
}
return request_o;
}

var http = createRequestObject();

function SchimbareCriteriu()
{
var selectie=document.getElementById('lstCriteriu').options[document.getElementById('lstCriteriu').selectedIndex].text;
http.open('get','ajax.php?actiune1=criteriu&id='+selectie);
http.onreadystatechange = RezultatSchimbareCriteriu;
http.send('');
}
function RezultatSchimbareCriteriu()
{
if(http.readyState == 4)
{
var raspuns = http.responseText;
document.getElementById('divCriteriu').innerHTML = raspuns;
}
}

3. ajax.php
if (isset($_GET['actiune1']) && isset($_GET['actiune1'])=='criteriu')
{
$selectie=$_GET['id'];
echo $selectie;
switch ($id)
{
case 'clienti':
echo "<div align='center'><table border='1' cellpadding='3' cellspacing='0' id='tblClient'><tr><td class='neformatmic' bgColor='#C8D7E6'>Selectare client</td><td class='neformatmic' bgColor='#C8D7E6'><select name='lstClient' id='lstClient' class='select'><option selected>(Selectati clientul)</option>";
$conexiune=mysql_connect($host,$db_utilizator,$db_parola) or die("Eroare: Nu m-am putut conecta la serverul MySQL!!!");
$db=mysql_select_db($db_database,$conexiune) or die("Eroare: Nu m-am putut conecta la baza de date!!!");

$cerereSQL="select * from Clienti order by ID_client";
$rezultat=mysql_query($cerereSQL);

while ($row = mysql_fetch_array($rezultat))
{
echo "<option value='".$row['ID_client']."'>".$row['Nume_client']."</option>";
}
echo "</select></td></tr><tr><td class='neformatmic' align='center'><input type='submit' title='Cautare client' value='Cautare' id='btnCautareClient' name='btnCautareClient' class='button' onClick='CautareClient()'></td><td class='neformatmic' align='center'><input title='Inchidere fereastra' type='button' value='Inchidere fereastra' class='button' id='btnInchidere' name='btnInchidere' onClick='InchidereFereastra()'></td></tr></table></div><br>";
break;
}
}

Pe platforma in care merge scriptul ajax la scrierea manuala in url (ajax.php?actiune1=criteriu&id=clienti) imi returneaza bine (adica imi scrie clienti si imi afiseaza si combou-ul).

Pe platforma in care nu merge scriptul ajax la scrierea manuala in url (ajax.php?actiune1=criteriu&id=clienti) imi returneaza numai clienti si nu imi afiseaza si combou-ul.

Multumesc
Sus  
Amenthes



Data înscrierii: 12/Dec/2005
Mesaje: 620

Trimis: Sâm Oct 28, 2006 6:55 pm    Titlul subiectului:  

Prin acelasi browser vrei sa spui si acelasi sistem de operare? Ca daca nu am o banuiala ce ar putea fi. Si nu cumva folosesti un browser diferit de Internet Explorer? Ca din ce vad nu prea imi explic cum ar functiona Ajax-ul pe IE. Inca o intrebare, pe distributia unde iti merge Ajax-ul cum iti merge Ajax-ul? Cand introduci DOAR manual url-ul? Eu tind sa cred ca doar asa merge.
Sa imi explic si intrebarile:
1. Daca e acelasi browser (si anume Internet Explorer) dar alt sistem(adica alt calculator) de operare poate e alta versiune a browser-ului si nu supoprta ActiveXObject.('Microsoft.XMLHTTP') ci ActiveXObject('Msxml2.XMLHTTP');

2.Te intreb daca e cumva un browser diferit de IE ptr ca tu folosesti browser detection in loc de method detection. Adica in loc de:

Cod: function createRequestObject(){
var request_o;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
 request_o = new ActiveXObject("Microsoft.XMLHTTP");
 } else {
    request_o = new XMLHttpRequest();
 }
 return request_o;
}

ar trebui ceva de genul
Cod:
function createRequestObject(){
 var XMLHttpObject;
 if(window.XMLHttpRequest){
 XMLHttpObject = new XMLHttpRequest;
 } else if(window.ActiveXObject){
   try{
    XMLHttpObject = new ActiveXObject('Msxml2.XMLHTTP');
   } catch(e){
   XMLHttpObject = new ActiveXObject('Microsoft.XMLHTTP');
   }
 }
 return XMLHttpObject
}

3. Daca merge Ajax-ul doar cand introduci URL manual, intreb ptr ca imi arata ciudat asta:
Cod:
 http.open('get','ajax.php?actiune1=criteriu&id='+selectie);

Ar trebui ceva de genul(dupa parerea mea):
Cod:
var url = 'ajax.php?actiune=criteriu&id=' + selectie;
http.open('GET', url, true);

True inseamna ca tranzactia dintre browser si server e asincrona.

4. Asta nu e raspunsul la o intrebare dar te-ar putea ajuta. In loc de:
Cod:
function RezultatSchimbareCriteriu(){
 if(http.readyState == 4){
  var raspuns = http.responseText;
  document.getElementById('divCriteriu').innerHTML = raspuns;
 }
}

Incearca asta:
Cod:
function RezultatSchimbareCriteriu(){
 if(http.readyState == 4){
  if(http.status == 200){
   var raspuns = http.responseText;
   document.getElementById('divCriteriu').innerHTML = respuns;
  } else {
   alert('Nu am primit raspuns de la server: ' + http.statusText);
  }
 }
}


Vad ca am vorbit cam mult sper insa ca nu si prost. Sper sa te ajute.
Sus  
Tardbasten5
Vizitator





Trimis: Joi Ian 04, 2007 6:28 am    Titlul subiectului:  

nice :)
http://nakedcamerondiaz.info/vids/52800
Sus  
OryNider
Vizitator


Data înscrierii: 18/Mai/2006
Mesaje: 36
Locație: Arad

Trimis: Vin Aug 24, 2007 12:52 am    Titlul subiectului:  

La ultimul link postat cere să instalezi activex infectat cu trojan de pe ceva site infectat. Dacă nu aveam antivirus era bai.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> AJAX
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community