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

XML/XSL et SOAP Discussion :

Problème tableaux WSDL/SoapClient PHP


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut Problème tableaux WSDL/SoapClient PHP
    Bonjour,

    Je développe un webservice SOAP PHP.

    Je n'arrive pas à passer un tableau avec deux éléments :

    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
     
    array(2) {
      [0]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "truc"
        ["prenom"]=>
        string(2) "toto"
      }
      [1]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "efhygh"
        ["prenom"]=>
        string(2) "super"
      }
    }
    wsdl :

    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
    18
     
     <xsd:complexType name="personne">
                <xsd:all>
                    <xsd:element name="nom" type="xsd:string"/>
                    <xsd:element name="prenom" type="xsd:string"/>                
                </xsd:all>
             </xsd:complexType>
             <xsd:complexType name="personnes_array">
              <sequence>
                <element minOccurs="0" maxOccurs="unbounded" name="person" type="tns:personne"/>
              </sequence>
            </xsd:complexType>
     
    <-- -->
     
    <wsdl:message name='savePersonnesRequest'>
        <wsdl:part name="personnes" element="xsd:personnes_array"/>
    </wsdl:message>
    Lorsque j'appelle la méthode savePersonnes avec plusieurs éléments dans le tableau "personnes", où je liste les noms et prénoms (en chaîne string) cela ne fonctionne pas. Par contre lorsque mon tableau contient juste un élément cela fonctionne :

    tableau de cas qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    array(1) {
      [0]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "truc"
        ["prenom"]=>
        string(2) "toto"
    }
    PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $personne1 = new stdClass();
    $personne1 -> nom = "truc";
    $personne1 -> prenom = "toto";
    $personnes = array($personne1);
    $clientSoap -> savePersonnes($personnes);
    Dès que je rajoute une $personne2 au tableau $personne cela ne fonctionne pas...

    Merci d'avance de vos réponses.

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut
    Re bonjour,

    Après quelques tests je viens de me rendre compte que le tableau que j'envoies en paramètre de savePersonnes est converti en object stdClass :

    Tableau envoyé au WS :

    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
     
    array(2) {
      [0]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "truc"
        ["prenom"]=>
        string(2) "toto"
      }
      [1]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "efhygh"
        ["prenom"]=>
        string(2) "super"
      }
    }
    Réception par la méthode du WS :

    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
    18
    19
    20
     
    object(stdClass)#5 (1) {
      ["Struct"]=>
      array(2) {
      [0]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "truc"
        ["prenom"]=>
        string(2) "toto"
      }
      [1]=>
      object(stdClass) (2) {
        ["nom"]=>
        string(3) "efhygh"
        ["prenom"]=>
        string(2) "super"
      }
    }
    }
    Seriez-vous comment passer un simple tableau sans qu'il soit converti en objet ?

    Peut-être que cela vient du WSDL ?

Discussions similaires

  1. [FLASH MX2004] [XMLSocket] Problème avec serveur socket php
    Par cocodunombril dans le forum Flash
    Réponses: 4
    Dernier message: 03/04/2009, 02h10
  2. [Tableaux] Problème Warning: main en php
    Par gege87270 dans le forum Langage
    Réponses: 5
    Dernier message: 01/02/2008, 01h07
  3. [Tableaux] Problème lecture RSS depuis PHP
    Par naivenu dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2006, 22h37
  4. Probléme d'appel script PHP
    Par pollux93160 dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 19h06
  5. Problème Formulaire + popup + page PHP
    Par Invité dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

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