Ajax senddata probleme chemin en param

courzip -  
 courzip -
Bonjour,

j'utilise la fonction sendata

function sendData(param1, page, div)
{
alert(page);
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else

//définition de l'endroit d'affichage:
var content = document.getElementById(div);

XhrObj.open("POST", page);
//xmlhttp.open("POST", page, true); //ouverture asynchrone

//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
{
//content.innerHTML = XhrObj.responseText ;
RESULT=XhrObj.responseText;
myArray=RESULT.split("\n");
for (i=0;i<myArray.length;i++)
{
key=myArray[i].split("=")[0];
value=myArray[i].split("=")[1];
if (key.length!=0)
{
myElement=document.getElementById(key);
if (myElement!=null)
{
try
{
if (myElement.type=='checkbox')
if (value=="1")
myElement.checked=true;
else
myElement.checked=false;
else
if (myElement.type=='text')
myElement.value=value;
else
myElement.value=value;
}
catch (e)
{
alert(e);
myElement.value=value;
}
}
}
}
}
}

XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param1);

}//fin fonction SendData

le probleme est que quand je j'appelle cette fonction ainsi ca fonctionne
select name="Centre" id="centreid" onchange=sendData("Document="+document.getElementById(\'DocumentId\').value,"test.php","");

mais des que je met un chemin( remplacer test.php par modeles/test.php ça ne fonctionne plus

select name="Centre" id="centreid" onchange=sendData("Document="+document.getElementById(\'DocumentId\').value,"modeles/test.php","");

j'ai aussi essayé ".modeles/test.php"

ou voire même le chemin complet

merci de votre aide car je suis nul

4 réponses

Defouille Messages postés 404 Statut Membre 54
 
Bonjour,

cela dépend de l'endroit ou se trouve la page que tu veux appeler, par rapport à la page qui appelle.

Si la page que tu appelle est dans un dossier qui lui même est dans le même dossier que la page appelante, il suffit de mettre le chemin simple :
monsousdossier/ma_page_appelee.php


Si la page appelée est dans le même dossier que la page appelante il suffit de mettre le nom de la page (comme dans ton 1er exemple) :
ma_page_appelee.php


Si la page appelée est dans un dossier "supérieur", un dossier qui contient lui même le dossier contenant la page appelante dans ce cas la tu dois rajouter ".." pour dire que tu remontes dans la hiérarchie :
../ma_page_appelee.php


En combinant ces règles tu peux atteindre n'importe quel fichier. C'est ce qu'on appelle les liens relatifs.

0
Defouille Messages postés 404 Statut Membre 54
 
un petit lien d'explication : http://horta.ulb.ac.be/cours/coursinfo/uv/communication/Chemins.html
0
courzip
 
je te remercie Defouille de m'avoir répondu.

mais j'ai bien compris les chemin relatif et ce que tu me propose je l'ai déjà testé.
peut être que je me suis mal exprimé dans ma demande.

quand je mets "test.php" ça fonctionne.

Je déplace le fichier "test.php" dans le répertoire "modeles"
et je fais appel à la page "modeles/test.php" et du coup ça ne fonctionne plus.

Merci de m'aider
0
Defouille Messages postés 404 Statut Membre 54
 
le répertoire modeles est bien contenu dans le dossier de la page appelante ?
0
courzip
 
Oui !!!!!!!!!!

voila mon arborescence

Le cas ou ça fonctionne
./
ici se trouve mon fichier test.php

./vues/
ici se trouve ma page php qui fait appel a ma fonction senddata

./js/
ici se trouve ma fonction senddata

Le cas ou ça NE FONCTIONNE PAS
./modeles
ici se trouve mon fichier test.php

./vues/
ici se trouve ma page php qui fait appel a ma fonction senddata

./js/
ici se trouve ma fonction senddata
0
Defouille Messages postés 404 Statut Membre 54
 
Comment le 1er cas peut marcher, si test.php et la page appelante ne sont pas dans le même dossier ?

L'important est la position de la page php appelée par rapport à la page php appelante.
0
courzip
 
je viens de résoudre mon problème.
quand je déplaçais mon fichier test.php, je me devais aussi de modifier le chemin des mes includes ( include chemin/function.php)

merci beaucoup pour ton aide
0