Variable JS-Ajax = Variable PHP

Mammouth du PHP | 1029 Messages

11 janv. 2007, 11:54

Bonjour,

est-il possible de passer une variable Php, dans une variable Ajax se trouvant dans un fichier externe et ayant l'extension .js

D'avance merci

MaitrePylos
L'expérience est la somme de toutes nos erreurs.

ViPHP
ViPHP | 3607 Messages

11 janv. 2007, 12:17

tu n'est pas forcément obligé de mettre l'extension .js à ton fichier, tu peux le mettre en .php et l'appeler en passant ta vraiable par l'url, par contre il ne faut pas oublier de préciser avec un header un content-type de type text/javascript (je pense ... ?)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 janv. 2007, 12:26

Sinon, selon le besoin, tu peux aussi définir ta variable avant d'appeller le script js :
<script language="javascript">
  var toto = '<?php echo $toto; ?>';
</script>
<script type="text/javascript" src="script.js"></script>
et dans script.js, la variable "toto" sera définie avec la valeur issue de php :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 1029 Messages

11 janv. 2007, 12:42

J'avais essayé la solution de jojolapine
<?php
$mot = 'mot';
?>
<script>
function creationRequete()
{
	var objRequete;
	if(navigator.appName.search("Microsoft") > -1)
	{
		objRequete = new ActiveXObject("MSXML2.XMLHTTP");
	}
	else
	{
		objRequete = new XMLHttpRequest();
	}
	return objRequete
}

function verifMotMelange()
{
	var content = document.formulaire.solutionMots.value;
	objRequete = creationRequete();
	objRequete.open('get','PhpJs/verifMotMelange.php?mot='<?php echo $mot ?>,true);
	objRequete.onreadystatechange = traiteMotMelange;
	objRequete.send(null);

}

function traiteMotMelange()
{
	if(objRequete.readyState == 4)
	{
		document.getElementById('idSolutionMots').innerHTML = objRequete.responseText;
	}
}
</script>


Mais cela ne fonctionnais pas.

Par contre celle Ryle Nickel

Merci de votre aide à tous les deux :lol:
L'expérience est la somme de toutes nos erreurs.

ViPHP
ViPHP | 3607 Messages

11 janv. 2007, 12:47

et ben oui la mienne ne marche pas si tu ne l'applique qu'a moitiée |(X

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 janv. 2007, 12:55

A noter que dans le code que tu donnes tu as une erreur de syntaxe, $mot contient une chaine et doit donc être inclue dans la chaine js :
objRequete.open('get','PhpJs/verifMotMelange.php?mot=<?php echo $mot ?>',true);
// au lieu de  
objRequete.open('get','PhpJs/verifMotMelange.php?mot='<?php echo $mot ?>,true); 
A noter également que dans un .js (ou un fichier php générant un .js :)) il ne faut pas de balise <script></script>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 1029 Messages

11 janv. 2007, 13:01

ok, je fais les test.

merci
L'expérience est la somme de toutes nos erreurs.

ViPHP
ViPHP | 3607 Messages

11 janv. 2007, 13:03

et surtout qu'il ne faut pas oublier le content-type !!! :non: