Chemin vers une page PHP

Fermé
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 juillet 2009 - 15 juil. 2009 à 15:09
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 15 juil. 2009 à 18:34
Bonjour,

Je ne sais pas si c'est bien ici que je dois poser ma question stupide.

J'ai suivi le tuto http://www.tutorialspoint.com/ajax/ajax_database.htm pour faire quelques tests avec AJAX.
Ma page PHP contenant mon formulaire est correcte et est située à la racine. Mon fichier JavaScript avec la fonction AJAX que j'appelle pour valider ce formulaire est dans le fichier j/j.lib.js. La page PHP qui interagit avec la base de données est elle dans le fichier l/check_registration.php.

Bon. Ma page s'affiche, je tape n'importe quoi, je clique sur le bouton pour envoyer le formulaire, ..., rien. Je vérifie le code, le tuto, je vérifie les chemins, j'en teste d'autres, aussi bien relatifs qu'absolus, ..., rien.

Quand je place un alert('Hello') dans ma fonction JavaScript la boîte de dialogue apparaît bien.

En fait ma page PHP qui contient juste
<?php
echo 'Hello';
?>

n'est jamais exécutée. Je ne comprends pas pourquoi.

Je l'appelle à cet endroit :

var ajaxRequest;
try {
ajaxRequest = new XMLHttpRequest();
[...]
ajaxRequest.open("GET", "../l/l.check_registration.php" + queryString, true);


(Ici ../l/check_registration.php pour repérer le fichier PH par rapport à l'endroit où est la fonction JavaScript).

Enfin tout ça pour dire que je ne sais pas comment appeler ma page PHP à partir de ma fonction JS, et je commence à avoir mal au cerveau. :/

8 réponses

Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 juillet 2009
15 juil. 2009 à 15:10
Oups, faute de frappe. Je précise que ma page PHP est bien s'appelle bien l/check_registration.php par rapport à la racine.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 juil. 2009 à 15:33
Bonjour,

c'est probablement exécuté, mais
le "hello" est retourné dans ajaxRequest.responseText
et tu en fais quoi ? et quand ?

tu utilises ajax en asynchrone,
donc tu dois faire :

ajaxRequest..onreadystatechange = function()
{ traitement de ajaxRequest.responseText.... }
et ce, avant l'open.

Cordialement [mon Site] [M'écrire] Bul
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 juil. 2009 à 15:36
enfin... après avoir testé raedyState
( au moins... tu devrais relire une doc )

ajaxRequest.onreadystatechange = function()
{ if(ajaxRequest.readyState == 4)
{ traitement de ajaxRequest.responseText.... }
}
0
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 juillet 2009
15 juil. 2009 à 16:15
Voilà le code complet de ma fonction à l'heure actuelle :
function ajaxFunction() {
var ajaxRequest;
try {
ajaxRequest = new XMLHttpRequest();
}
catch (e) {
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("HTTP Requests not supported");
return false;
}
}
}
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById('hint');
ajaxDisplay.value = ajaxRequest.responseText;
}
}
var e = document.getElementById('email').value;
var f = document.getElementById('firstname').value;
var l = document.getElementById('lastname').value;
var p = document.getElementById('password').value;
var p2 = document.getElementById('password2').value;
var g = document.getElementById('gender').options[document.getElementById('gender').selectedIndex].value;
var doby = document.getElementById('date_of_birth_year').options[document.getElementById('date_of_birth_year').selectedIndex].value;
var dobm = document.getElementById('date_of_birth_month').options[document.getElementById('date_of_birth_month').selectedIndex].value;
var dobd = document.getElementById('date_of_birth_day').options[document.getElementById('date_of_birth_day').selectedIndex].value;
var cob = document.getElementById('country_of_birth').options[document.getElementById('country_of_birth').selectedIndex].value;
var cor = document.getElementById('country_of_residence').options[document.getElementById('country_of_residence').selectedIndex].value;
var cc = document.getElementById('captcha_code').value;
var queryString = "?e=" + e + "&f=" + f + "&l=" + l + "&p=" + p + "&p2=" + p2 + "&g=" + g + "&doby=" + doby + "&dobm=" + dobm + "&dobd=" + dobd + "&cob=" + cob + "&cor=" + cor + "&cc=" + cc;
ajaxRequest.open("GET", "../l/l.check_registration.php" + queryString, true);
ajaxRequest.send(null); 
}


Elle est appelée via :

                
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 juillet 2009
15 juil. 2009 à 16:16
hint est l'id d'une balise div dans la page principale.

Je ne vois aucune erreur nulle part moi.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 juil. 2009 à 18:27
1° comme c'est un lien, ça recharge la page
2° un div c'est innerHTML, pas value
3° " en trop dans la balise


<script type="text/javascript">
function ajaxFunction() 
{	var ajaxRequest;
try 			{	ajaxRequest = new XMLHttpRequest();	}
catch (e) 	{	try 			{	ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");	}
catch (e) 	{	try 			{	ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");	}
catch (e) 	{	alert("HTTP Requests not supported");	
return false;
}
}
}
alert(ajaxRequest)
ajaxRequest.onreadystatechange = function() 
{	if(ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById('hint');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var queryString = "?e=" + "teste" + "&f=" + "testf";
ajaxRequest.open("GET", "new2.php" + queryString, true);
ajaxRequest.send(null); 
}
</script>




0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 juil. 2009 à 18:32
bah... en simplifiant au maxi, ça baigne.


<script type="text/javascript">
function ajaxFunction() 
{	var ajaxRequest;
try 			{	ajaxRequest = new XMLHttpRequest();	}
catch (e) 	{	try 			{	ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");	}
catch (e) 	{	try 			{	ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");	}
catch (e) 	{	alert("HTTP Requests not supported");	
return false;
}
}
}
alert(ajaxRequest)
ajaxRequest.onreadystatechange = function() 
{	if(ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById('hint');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var queryString = "?e=" + "teste" + "&f=" + "testf";
ajaxRequest.open("GET", "new2.php" + queryString, true);
ajaxRequest.send(null); 
}
</script>






il y avait une " en trop sur le bouton,
ça ne doit pas géner ?!?

donc erreur adresse page.php,
erreur javascript name undefined ou autre
....
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 juil. 2009 à 18:34
ouf... que d'erreurs moi aussi !
2 messages

dont il devrait rester :

div c'est .innerHTML,
" en trop,
vérifier si pas d'erreurs sur les champs utilisés
0
Rejoignez-nous