Utiliser une variable php comme variable javascript

Résolu
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 - 24 juin 2010 à 22:59
kilroysoft Messages postés 1 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 26 juin 2010 - 26 juin 2010 à 17:55
J'utilise une boucle php qui permet d'afficher des div en fonction de $i.

Et j'utilise une boucle while qui m'affiche dans la boucle for par moment une div qui se superpose. Cette div est définie en fonction d'une requête mySQL de la sorte :
echo '

'


La fonction pseudoUpdate est un script ajax utilisé grâce à la bibliothèque prototype.js. Elle permet de mettre à jour un tableau lorsque l'on clique sur la div définie plus haut.

Voici le code de pseudoUpdate() :

<script>
function pseudoUpdate(<? echo "$data[username]";?>)
{
    elementHTML = document.getElementById('player');
    var url = "pseudo.php?pseudo=<? echo "$data[username]";?>";

    o_options = new Object();
    o_options = {method: 'get',onComplete:Reponse};
    var laRequete = new Ajax.Updater(elementHTML,url, o_options);
}
function Reponse(xhr)
{
    if (xhr.readyState == 4)
    {
        $('player').innerHTML = xhr.responseText;
    }
    else
    {
        $('player').innerHTML = xhr.status;
    }
}
</script>


Actuellement le variable URL (var URL) me renvoit une valeur arrêtée de $data[username], or je désirerai que cette valeur change en fonction de la valeur affichée dans la div ($data['username']). Or la façon dont j'utilise dans mon script ne fonctionne pas. J'aimerai l'envoyer via quelque chose du genre onClick=pseudoUpdate($data[username]);

Puis traiter l'information dans mon script et l'ajouter à la variable URL à la place de mon echo actuel. Est-ce que quelqu'un pourrait me renseigner ?

Merci beaucoup je vous souhaite une bonne journée :)

6 réponses

monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
25 juin 2010 à 23:30
J'ai pas essayé ta technique mais j'ai finis par faire ça qui marche :

Merci pour ton aide dans le futur je l'utiliserai ça me semble plutôt correct !
echo '

';
3
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
24 juin 2010 à 23:01
Erreur : oubliez ce qu'il y a entre parenthèse dans le nom de la fonction de la page javascript !
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
25 juin 2010 à 09:24
Bonjour,
la fonction en javascript doit être figée, j'entends par la quelle doit être neutre pour pouvoir accepter tous les appels.
Son entête sera donc
function pseudoUpdate( url_)
et on récupère et utilise dans le corps de la fonction le paramètre url_ comme suit
var url = url_;

à toi donc de passer le paramètre dans l'appel de la fonction sur le onclick de ta DIV
onClick=pseudoUpdate("$data['username']");
ou un truc dans ce style

;O)
0
monoski Messages postés 132 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 13 mai 2013 1
25 juin 2010 à 20:05
Je m'étais aidé d'un tutoriel jusque là qui allait dans le sens de ce que tu m'as présenté (je te remercie encore une fois pour ton aide :p), le problème c'est que dans ma div, je dois obligatoirement mettre la fonction puis entre parenthèse je dois mettre des guillements => "" or en php ce type de notation ne permet pas d'interpréter les variables.

Donc je rajoute des apostrophes => '' et ça me fait une erreur php... J'enlève donc les guillemets, ça ne fonctionne plus...

Quelqu'un a une astuce? :p
0

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

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
25 juin 2010 à 23:08
concernant l'écriture au travers d'un echo il va de soit qu'il y a obligation de mettre entre guillemet ou apostrophe afin que le javascript reconnaisse un paramètre de type chaîne et non de type variable.
La deuxième chose à penser c'est d'échapper les guillemets ou apostrophes.
avec
$data['race'] = "Race";
et
$data['username'] = "Username";
si l'on veut écrire en javascript
<div class "Race" onclick "pseudoUpdate('Username');" class ="...
il faut écrire en PHP
echo '<div class="'. $data['race'].'" onclick ="pseudoUpdate(\''.$data['username'].'\');" class = "...

Sauf erreur ou omission de ma part, mes connaissances en PHP étant plus que limitées.
;O)
0
kilroysoft Messages postés 1 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 26 juin 2010
26 juin 2010 à 17:55
Pour les variables de type tableau, il est possible de les intègrer avec des {}
echo "Voilà l'exemple $noex : "{$texte[$noex]}"
";
0
Rejoignez-nous