begin process at 2012 02 04 23:00:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Javascript / DHTML

 > PHP TO JS - CONVERSION D'UNE VARIABLE EN PHP VERS JAVASCRIPT

PHP TO JS - CONVERSION D'UNE VARIABLE EN PHP VERS JAVASCRIPT


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Javascript / DHTML Niveau :Débutant Date de création :21/04/2003 Date de mise à jour :21/04/2003 17:41:19 Vu :28 699

Auteur : naholyr

Ecrire un message privé
Site perso
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

 Description

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

  • 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;
  • }
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;
} 



 Sources du même auteur

Source avec Zip MODULE DE GESTION D'ERREUR
Source avec Zip LECTURE DES FICHIERS DE CONFIGURATION .INI
Source avec Zip COURS COMPLET SUR LES EXPRESSIONS RÉGULIÈRES EN PHP
STRINGTOKENIZER - IMPLÉMENTATION DE LA CLASSE JAVA EN PHP
TRI DE TABLEAUX MULTI-DIMENSIONNELS

 Sources de la même categorie

Source avec Zip Source avec une capture PHPJSVFORM : DES CLASSES PHP, DES JAVASCRIPTS POUR CRÉER FAC... par synanceia
BOUTON POUR SITE WEB PAYMENT par Tom56340
Source avec Zip Source avec une capture PETIT CLIENT + AJAX + PHP par kiki67100
Source avec Zip Source avec une capture BOÎTE À ONGLETS / MENUS ET SOUS-MENUS / JAVASCRIPT / PHP / D... par Heirem
Source avec Zip Source avec une capture JUKEBOX EN LIGNE par Flachy Joe

Commentaires et avis

Commentaire de phvr le 23/06/2003 14:19:01

Excellent code qui fonctionne très bien, de plus l'exemple (pour une fois ;-) ) est très clair.

Commentaire de bob3000 le 05/07/2003 02:43:59

super bon!! bravo!

Commentaire de [GANDALF le 27/04/2004 12:17:12

Excellent code ! Excellent code ! Et encore excellent code ! C'est tout con, mais je n'avais jamais pensé à

var variable = "<?echo $variable?>"

pour récupérer une variable php en javascript. Depuis le temps que je cherchais comment faire...

Commentaire de atlahack le 16/06/2004 16:03:33

Bonjour a tous
Merci pour ce code => super.
J'ai malgré tout une petite question, peu t'on faire l'inverse, et si oui, comment?
Merci d'avance.

Commentaire de naholyr le 16/06/2004 19:18:24

L'inverse est un non-sens puisque PHP travaille en amont de javascript. Envoyer des données à PHP nécessite l'appel d'une page, et donc se fera via une relocation (document.location.href="script.php?var=valeur" par exemple).

Commentaire de engy11 le 02/11/2004 13:41:46

Bonjour,
J'ai à peu près compris le code mais l'exemple me parait encore flou (je suis un débutant de JS). Je voudrais savoir l'appel de la fonction se fait comment e dans quel type de fichier : php ou .. js? Merci

Commentaire de naholyr le 02/11/2004 14:49:56

C'est PHP qui va générer du Javascript.
Exactement comme quand tu ecris:
<script> <?php echo "document.write('salut');"; ?> </script>

Commentaire de beladel le 15/02/2006 19:46:28

ça me sauuuuuuuuuuuuuuuve, en fin.

BRAVO!
     _  _  _
|\/||_ |_||  | |||
|  ||_ | \|_ | ...

Commentaire de boudouya le 17/03/2006 10:37:03

bravo un porceau de code trés utile et de secours

Commentaire de tomboul le 15/09/2006 16:41:34

bravo pour ce code !!!

etant autodidacte et ne developpant qu'en PHP (pour l'instant) j'ai été perturbé par les codes &gt; et &lt;

en lisant j'ai compris que cela équivalait aux entrées et sorties de balise '<' et '>'

ainsi le code de l'exemple donne :

<code>
<?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>;
</code>

Commentaire de g_fuck le 23/04/2007 11:16:20

si je comprend bien cette fonction est a maitre dans les balises php???
et une autre question : pourquoi une fois passe une variable de php a javascript on ne peut pas l'incrementer dans un boucle du genre for(....) ?? je veux dire que a chaque fois que la boucle tourne la variable reprend sa valeur initiale qu'elle avait dans les balises php !!!!

Commentaire de planete80 le 09/06/2007 17:41:11

salut,
heu @¿@ comment il s'integre ce script et dois tu l'enregistrer en .js ou autrement ?


Merci de votre indulgence

Commentaire de g_fuck le 11/06/2007 08:56:12

si je me rapelle bien c'est dans des balises
<?php function php2js ($var) {..... ?> que tu dois integrer cette function ... et en suite faire apelle a cette function de la sorte :

<SCRIPT>
var myVar = <?php php2js(taVAR) ?>

</SCRIPT>

Commentaire de jnff le 06/09/2008 21:06:34

Bonjour à tous, je suis débutant ds la programmation php et je voudrais déjà savoir ou mettre la fontion php2js() exactement (ds le header, ds le body, ds un autre fichier).

Est ce que ce script peut faire ce que je veux, cad:

j'ai une page php (eleve_traitement.php) qui traite un formulaire. A la fin du traitement, je voudrais me rediriger sur une autre page mais en transferant une variable php ds l'adresse. la fonction qui me permet de me rediriger est une fonction en javascript est cet redirection s'effectu après un décompte.

pour la redirection j'utilise cela:

<script type="text/javascript">
window.onload = Init;
var waitTime = 5; // Temps d'attente en secondes.
var url = <?php echo $adresse_retour; ?>; // Lien de destination.
var x = 1000;

function Init()
{
window.document.getElementById('compteur').innerHTML = waitTime;
x = window.setInterval('Decompte()', 1000);
}

function Decompte()
{
((waitTime > 0)) ? (window.document.getElementById('compteur').innerHTML = --waitTime) : (window.clearInterval(x));
if (waitTime == 0)
{
window.location = url;
}
}
</script>




Dans le body, à la fin du traitement des données recues par le formulaire, j'ai déclaré une variable php qui contient l'adresse de la page que je veut afficher après :

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

sachant que la variable $classe_eleve est la variable que je veux récupérer sur la page eleve_consultation.php



Lorsque j'execute ma page de traitement, à la fin du décompte, je suis redirigé sur la page d'accueil (index.php) du site comme s'il n'avait pas tenu compte du "var url = <?php echo $adresse_retour; ?>;".


Pouriez vous m'aider, car autant je me débrouille un peu avec php et mysql, qu'avec javascript je ne fais que recopier les fonctions trouvées sur le net.

Merci d'avance à qui m'aidera.

Commentaire de rius_ngatcha le 12/09/2008 20:19:31

2008 bravo pour le code que tu as écris car en plus d'être simple il est très simple

Commentaire de dpantillon le 17/09/2008 17:13:43

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;

Commentaire de dpantillon le 17/09/2008 17:15:06

Correction:

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

Commentaire de jnff le 20/09/2008 13:03:30

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?

Commentaire de dpantillon le 20/09/2008 16:39:27

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+

Commentaire de jnff le 12/10/2008 16:44:31

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.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales