IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

array php dans fonction javascript?


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut array php dans fonction javascript?
    Bonjour a tous,

    Je souhaite envoyer � une fonction javascript un array php qui contient des valeurs.

    En utilisant AJAX, j'aimerai que la fonction javascript envoie en get cet array a une page qui se charge dans un div.

    Je voudrais que le tableau, lorsque je le r�cup�re en faisant un $tab=$_GET['tab']; soit toujours un tableau php.

    Je souhaiterais tout d'abord savoir si cela est possible.

    J'ai cru comprendre qu'on peut passer un array en get en utilisant la fonction serialize.

    Je suis loin d'�tre s�r qu'un tableau php puisse �tre pass� en argument dans une fonction javascript. (quoique c'est bien possible avec les variables, donc peut �tre?)
    Si ce n'est pas possible, il doit bien exister un moyen de convertir un tableau php en tableau javascript, et ce nouveau tableau devrait pouvoir �tre pass� en argument dans la fonction (je ne fais que des suppositions).
    Le tableau que je recup�rerai sur la page en faisant $tab=unserialize($_GET['tab']); serait un array php?

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    Salut,

    JSON est fait pour cela: c�t� PHP utilise json_encode($v) pour envoyer � ton client et depuis ton client fournis du JSON que tu transformeras c�t� PHP en tableau avec json_decode($json, true).
    Soit:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    //client -> server
    $tab=json_decode($_GET['tab'],true);
    //server -> client
    $json=json_encode($tab);
    echo ($json);
    ERE

  3. #3
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    sinon il doit y avoir un script de passage d'array de php � js et inversement dans les contribtions...

    join explode
    implode split

    pour un array simple
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    @SpaceFrog: c'est d'ailleurs tellement demand� qu'une recherche sur nos forums ram�ne un tas de posts auxquels... tu as d�j� r�pondu ! Et toujours la m�me r�ponse !
    Citation Envoy� par SpaceFrog Voir le message
    implode cot� php pour envoyer une chaine avec s�parateur
    split en javascript pour g�n�rer un tableau � partir de la chaine ...
    ERE

  5. #5
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Oui je suis assez constant
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  6. #6
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    A tel point que c'est d�sormais dans la FAQ
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Mon tableau est de la forme suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Array ( [0] => aaaaa[1] => bbbbb [2] => cccccc)
    La solution json me parra�t sympathique.

    Je me demandais si j'avais besoin d'inclure un fichier dans le head, � la mani�re de jquerry. Je n'ai pas vu d'information en ce sens en me renseignant sur internet, mais je rencontre un petit probleme:

    J'ai un tableau php $tab qui s'affiche bien avec un print_r($tab); .

    Mon script marche correctement.

    Mais lorsque j'encode ce tableau en json, ( echo(json_encode($tab); ), une erreur survient, le chargement de la page est arr�t�. C'est ce qui me fait penser que l'instruction json_encode n'est pas reconnue.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Autant pour moi, simple probl�me de parenth�se.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Mon array php est de la forme:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Array ( [0] => aaaaa[1] => bbbbb [2] => cccccc)
    Apres encodage json, il est:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ["aaaaaType","bbbbb", ccccc]
    Ce tableau json est contenu ds la variable $arrayjson:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $arrayjson=json_encode($tab);
    Je souhaite l'envoyer en argument dans ma fonction javascript loadparamind:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    loadparamind( <?php echo($arrayjson); ?>);
    Mais Firebug me renvoie une erreur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    Error: syntax error
    Source File: http://localhost/index.php?page=testvisu
    Line: 9, Column: 56
    Source Code:
        loadparamind( [
    En fait, le echo n'affiche que le crochet ouvrant, apr�s ca bloque.
    Pourtant, lorsque je fait un echo de $arrayjson en dehors de la fonction loadparamind, la totali� du tableau s'affiche.

    D'ou vient ce probl�me?

  10. #10
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    tu es cot� serveur en php

    loadparamid est une focntion php ???
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Non, j'apelle loadparamind par un onclick, c'est une fonction javascript.

  12. #12
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    il faut passer l'objet � js ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    <?php
    $arrayjson=json_encode($tab);
    ?>
    var objJsonJS=<?php  echo $arrayjson; ?>
    loadparamind( objJsonJS);
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Le probl�me persiste.
    objJsonJS vaut [ J'ai l'impression que ce sont les guillemets � l'int�rieur de $arrayjson qui entrent en conflit avec les guillemet de mon onclick.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <input type="button" value="OK" onclick="				
     
    var objJsonJS = <?php echo($arrayjson);?>;
     
    loadparamind(objJsonJS);
    "/>
    En effet, $arrayjson vaut: ["aaaaaType","bbbbb", "ccccc"]

    Comment faire pour remplacer les guillemets de $arrayjson par des '?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Un petit
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $arrayjson = str_replace('"','\'',$arrayjson);
    fait l'affaire.

  15. #15
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    oui ou plus simpelement:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <input type="button" value="OK" onclick='				
     
    var objJsonJS = <?php echo($arrayjson);?>;
     
    loadparamind(objJsonJS);
    '/>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    L'objet json est bien transmis a la nouvelle page.
    Par contre, sur cette nouvelle page, lorsque je fait
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $arrayparam=json_decode($_GET['objJsonJS'],true);
    	print_r($arrayparam);
    Je r�cup�re le r�sultat de la forme suivante:
    Alors que je pensais que ca renvoyait un array php, donc quelque chose comme �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Array ( [0] => aaaaa [1] => bbbbb )
    C'est normal?

    En fait, si je fait un alert(objJsonJS) dans la fonction loadparamind, je remarque qu'une fois dans la fonction, objJsonjs ne vaut plus ['aaaa','bbbbb'], mais aaaaa,bbbbb.

  17. #17
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Euh... une question b�te, mais vu que ton tableau est un tableau index�, pourquoi tu ne passes pas par l'exemple de la FAQ qui est plus simple � mettre en oeuvre ?
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  18. #18
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    Salut,
    Citation Envoy� par vidzo Voir le message
    L'objet json est bien transmis a la nouvelle page.
    Par contre, sur cette nouvelle page, lorsque je fait
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $arrayparam=json_decode($_GET['objJsonJS'],true);
    	print_r($arrayparam);
    Je r�cup�re le r�sultat de la forme suivante:
    Alors que je pensais que ca renvoyait un array php, donc quelque chose comme �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Array ( [0] => aaaaa [1] => bbbbb )
    C'est normal?

    En fait, si je fait un alert(objJsonJS) dans la fonction loadparamind, je remarque qu'une fois dans la fonction, objJsonjs ne vaut plus ['aaaa','bbbbb'], mais aaaaa,bbbbb.
    N'oublie pas que JSON est en fait une chaine de caract�res. Donc si tu postes directement ta variable objJsonJS cela ne peut fonctionner. Il te faut s�rialiser d'abord ta variable JS array en JSON (donc faire exactement ce que tu as fait depuis PHP, mais � partir de JS).
    Pour s�rialiser depuis JS: http://www.json.org/js.html

    ERE

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    Bon, on m'a rappel� que mon application web sera h�berg�e sur un serveur php4, et apparement Json n'est pas bien pris en compte dans cette version, il faut utiliser des astuces.

    Je vais donc m'essayer � la version implode split, join explode.

    Dans mon onclick, je suit le FAQ � la lettre:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <?php echo "var objJsonJS = '".implode("<>", $arrayparam)."'.split('<>');"; ?>
    Pour r�cup�rer le tableau sur la page appel�e, je rencontre le m�me probl�me qu'en Json: C'est une chaine de caract�re qui m'est renvoy�e, du type aaaa,bbbb

    Je fais :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    $arrayparam=$_GET['arrayparam'];
    $arrayparam = explode("<>", $arrayparam).join('<>');
    Mais ma syntaxe est incorrecte.

    Dois je dans ce cas aussi faire un unserialize?

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Par d�faut
    r�solu

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. Passage d'un String PHP dans fonction javascript et quotes
    Par roukgreg dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 14/05/2013, 14h48
  2. php dans fonction javascript
    Par gunsailor dans le forum Langage
    R�ponses: 9
    Dernier message: 07/09/2010, 11h21
  3. Insertion variable PHP dans fonction javascript
    Par hisin dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 01/06/2010, 16h58
  4. Utiliser le r�sultat d'un fichier php dans fonction javascript
    Par theshark85 dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 23/07/2009, 12h07
  5. Appel fonction php dans code javascript
    Par licorne dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 05/03/2008, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo