Page 1 sur 1

Variable JS-Ajax = Variable PHP

Posté : 11 janv. 2007, 11:54
par Maitrepylos
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

Posté : 11 janv. 2007, 12:17
par jojolapine
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 ... ?)

Posté : 11 janv. 2007, 12:26
par Ryle
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 :)

Posté : 11 janv. 2007, 12:42
par Maitrepylos
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:

Posté : 11 janv. 2007, 12:47
par jojolapine
et ben oui la mienne ne marche pas si tu ne l'applique qu'a moitiée |(X

Posté : 11 janv. 2007, 12:55
par Ryle
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>

Posté : 11 janv. 2007, 13:01
par Maitrepylos
ok, je fais les test.

merci

Posté : 11 janv. 2007, 13:03
par jojolapine
et surtout qu'il ne faut pas oublier le content-type !!! :non: