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

Signaler
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
-
Messages postés
1
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
26 juin 2010
-
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

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

';
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
Erreur : oubliez ce qu'il y a entre parenthèse dans le nom de la fonction de la page javascript !
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
132
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
13 mai 2013
1
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
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
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)
Messages postés
1
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
26 juin 2010

Pour les variables de type tableau, il est possible de les intègrer avec des {}
echo "Voilà l'exemple $noex : "{$texte[$noex]}"
";