Php to js - conversion d'une variable en php vers javascript

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 187 fois - Téléchargée 27 fois

Contenu du snippet

string php2js (mixed var)

la fonction va convertir la variable passée en paramètre en une chaine qui correspond au code JavaScript de la variable.

[Exemple]
<?php
$tab = array(1, 2, array(3, 4), 5, "salut", True);
$js = php2js($tab); // [1,2,[3,4],5,'salut',true]
?>
<script language="JavaScript">
var tab = <?php echo $js; ?>;
alert(tab);
</script>

Source / Exemple :


function php2js ($var) {
    if (is_array($var)) {
        $res = "[";
        $array = array();
        foreach ($var as $a_var) {
            $array[] = php2js($a_var);
        }
        return "[" . join(",", $array) . "]";
    }
    elseif (is_bool($var)) {
        return $var ? "true" : "false";
    }
    elseif (is_int($var) || is_integer($var) || is_double($var) || is_float($var)) {
        return $var;
    }
    elseif (is_string($var)) {
        return "\"" . addslashes(stripslashes($var)) . "\"";
    }
    // autres cas: objets, on ne les gère pas
    return FALSE;
}

A voir également

Ajouter un commentaire

Commentaires

jnff
Messages postés
7
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
27 avril 2007

Merci @ tous pour vos réponses.

J'ai trouvé la solution, je ne récupérais pas l'adresse de redirection ou il le fallait. Il suffit juste d'affecter la variable "url" pendant la traitement en php en non pas dans la fonction javascript placée dans le "head". J'avais oublié que le php est éxecuté côté serveur et non pas côté utilisateur. Du coup je voulais traiter une variable php qui n'existe plus côté utilisateur.

Voila mon problème est résolu.
dpantillon
Messages postés
3
Date d'inscription
lundi 1 mai 2006
Statut
Membre
Dernière intervention
20 septembre 2008

Et avec ce bout de code:
<script type="text/javascript">
window.opener.location.href="<?php echo $adresse_retour; ?>";
setTimeout("window.close()",1000);
</script>
Et si cela en fonctionne pas, teste de la manière suivante:
echo " jnff : ".$classe_eleve; // pour être certain que tu récupères bien la page
et si ça ne marche toutjours pas, essaie de mettre l'adresse en hard:
<script type="text/javascript">
window.opener.location.href="eleve_consultation.php?classe=1C_PROE";
setTimeout("window.close()",1000);
</script>
A+
jnff
Messages postés
7
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
27 avril 2007

Merci de vos réponses @ tous.
rius_ngatcha: Je n'ai aucun mérite pour le code étant donné que je l'ai récupérer sur le net mais c'est clair que la fonction de redirection après un décompte est assez simple d'utilisation.

dpantillon: Effectivement je fais un "$classe_eleve mysql_real_escape_string(htmlspecialchars($_POST['classe_eleve']));" pour récuperer de mon formulaire la classe de l'élève, je n'ai pas de problème de ce côté là, par contre là ou cela coince c'est que je n'arrive pas à faire cela "var url <?php echo $adresse_retour; ?>;" dans la fonction de redirection, sachant que ma variable $adresse_retour contient bien l'adresse de la page que je veux afficher après le décompte (ex: "eleve_consultation.php?classe=1C_PROE"), la fonction en javascript ne prend pas en compte le contenu de la variable php $adresse_retour. C'est pour cela que je me retrouve sur la page d'accueil de mon site étant donner qu'il n'a pas exécuter le "var url = <?php echo $adresse_retour; ?>;", la variable JS reste "vide". D'où vient le problème?
dpantillon
Messages postés
3
Date d'inscription
lundi 1 mai 2006
Statut
Membre
Dernière intervention
20 septembre 2008

Correction:

if (isset($_POST[classe_eleve]))
$classe_eleve=$_POST[classe_eleve];
else $classe_eleve=0;
dpantillon
Messages postés
3
Date d'inscription
lundi 1 mai 2006
Statut
Membre
Dernière intervention
20 septembre 2008

Salut JNFF;
Je tombe par hasard sur ta question.
Comment récupères-tu ta variable $classe_eleve avant de l'utiliser dans:

$adresse_retour = 'eleve_consultation.php?classe=' . $classe_eleve;

Je pense que tu la passes par POST. Tu dois donc la récupérer:

if (isset($_POST[classe_eleve]))
$classe=$_POST[classe_eleve];
else $classe=0;

Pour la tester, tu n'as qu'à faire un:
echo " jnff : ".$classe_eleve;

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.