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

Langage PHP Discussion :

transfert Tableau 2D entre AS3 et PHP


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut transfert Tableau 2D entre AS3 et PHP
    Bonjour

    Voilà je cherche à transmettre un tableau à deux dimensions de AS3 vers PHP

    code du côté AS3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    var varsend:Array = new Array(); 
     
    varsend.push(["Connect", "localhost", "root", "", "genea"]);
    varsend.push(["Select","first_name","date_naissance","lieu_naissance",]);
    varsend.push(["From", "oxg_individuals",]);
     
    private static var variables:URLVariables;
    private static var loader:URLLoader;
    private static var request:URLRequest;
     
    request = new URLRequest("http://127.0.0.1/fred/php/Comm.php");
    request.method = URLRequestMethod.POST;
     
    variables = new URLVariables();
    variables["TabSend[][]"]  = varsend;
    request.data = variables;
    et du côté PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for($k=0; $k<sizeof($_POST['TabSend']); $k++) 
    {
    	echo sizeof($_POST['TabSend']);
    	echo sizeof($_POST['TabSend'][$k]);
    }
    Mon problème est que le nombre d'élément de la première dimension du tableau est bien reconnu à 3 éléments.

    Mais que pour la deuxième dimension PHP ne détecte qu'un élément
    ainsi echo $_POST['TabSend'][0][0] donne "Connect,localhost,root,,genea"
    et $_POST['TabSend'][0][1] n'existe pas.

    Alors que j'aimerais que
    $_POST['TabSend'][0][0] donne "Connect" et que
    $_POST['TabSend'][0][1] donne "localhost" etc...

    Quelqu'un saurait t'il m'aider ? merci

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    ya longtemps que j'ai pas mis un pied sur AS,

    mais avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    varsend[0].push(["Connect", "localhost", "root", "", "genea"]);
    ect...

    ou plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    varsend[0]= new Array( "Connect", "localhost", "root", "", "genea" );

    peu être..

  3. #3
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    non j'ai déjà essayé sans succès

    j'ai récupéré la chaîne envoyé par l'AS3, elle se présente sous la forme.

    TabSend%5B%5D%5B%5D=Connect%2Clocalhost%2Croot%2C%2Cgenea&TabSend%5B%5D%5B%5D=Select%2Cfirst%5Fname%2Cdate%5Fnaissance%2Clieu%5Fnaissance&TabSend%5B%5D%5B%5D=From%2Coxg%5Findividuals

    ou

    TabSend est bien ma variable
    %5B et %5D représentent les [].

    Ensuite le & sépare les éléments de la première dimension, la cela fonctionne bien du côté php, donc aucun problème pour un tableau d'une dimension.

    Par contre le %2C représente une , et sépare les éléments de la seconde dimension, sauf que la du côté php ça coince.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    alors c'est simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $string = $_POST['TabSend'][$k];
    $tab = explode ( $string ,'%2C' );
    print_r($tab);
    le problème est si tu doit utiliser
    $tab = explode ( $string ,',' );
    vue que tu pourrais avoir ce caractère à l’intérieur des éléments de 2em dim

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    mais en note, tu n'as pas une fonction json avec AS3 ?

    [transformer le tableau en json]
    envoi et récup en php avec json_decode

    La c'est sur ça fonctionnera

  6. #6
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Citation Envoyé par ascito Voir le message
    alors c'est simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $string = $_POST['TabSend'][$k];
    $tab = explode ( $string ,'%2C' );
    print_r($tab);
    le problème est si tu doit utiliser
    $tab = explode ( $string ,',' );
    vue que tu pourrais avoir ce caractère à l’intérieur des éléments de 2em dim
    C'est exactement le problème rencontré, car à partir du moment ou cela passe par la fonction $_POST le %2C est directement reconnu comme ', ' et ne fait plus la différence avec une ',' dans une valeur du tableau et de plus si j'utilise explode, je ne vois plus trop l'intérêt d'utilisé un tableau du côté AS3.

    Je vais voir pour le json mais je ne vois pas trop ce que c'est

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variables = JSON.parse(varsend);

    va créer quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    {
        "varsend" :
            {"0":
                {"Connect", "localhost", "root", "", "genea"}
            },
            {"1":
                {"Select", "first_name", "date_naissance", "", "lieu_naissance"}
            } 
     
    }
    et en php, javascript etc, tout le monde sait l'interpréter, c'est le format d'échange à privilégier

Discussions similaires

  1. transfert Tableau 2D entre AS3 et PHP
    Par Coocky10 dans le forum Flash
    Réponses: 1
    Dernier message: 26/05/2012, 04h17
  2. Transfert de données entre java et php
    Par grafistolage dans le forum Langage
    Réponses: 2
    Dernier message: 08/10/2009, 15h23
  3. Transfert de données entre java et php
    Par grafistolage dans le forum Applets
    Réponses: 0
    Dernier message: 15/04/2009, 11h04
  4. Problème de transfert de variable entre Flash et PHP
    Par megartaud dans le forum Intégration
    Réponses: 3
    Dernier message: 06/04/2008, 02h25
  5. Transfert de Valeurs entre 2 fichiers PHP ?
    Par caviar dans le forum Langage
    Réponses: 4
    Dernier message: 27/04/2006, 13h10

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