Utiliser une variable php comme variable javascript [Résolu]

Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
- - Dernière réponse : 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 :)
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
3
Merci
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 '

';

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 130 internautes nous ont dit merci ce mois-ci

Commenter la réponse de monoski
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
0
Merci
Erreur : oubliez ce qu'il y a entre parenthèse dans le nom de la fonction de la page javascript !
Commenter la réponse de monoski
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
9
0
Merci
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)
Commenter la réponse de PetoleTeam
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
0
Merci
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
Commenter la réponse de monoski
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
9
0
Merci
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)
Commenter la réponse de PetoleTeam
Messages postés
1
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
26 juin 2010
0
Merci
Pour les variables de type tableau, il est possible de les intègrer avec des {}
echo "Voilà l'exemple $noex : "{$texte[$noex]}"
";
Commenter la réponse de kilroysoft