Bonjour,

je commence à utiliser NuSOAP en PHP et je rencontre un problème au niveau des types.

Le client doit appeler le web-service avec les variables en session qui correspondant à un tableau contenant des chaines et des tableaux d'entiers.

J'ai réussi à récupérer les chaines mais pas les tableaux.

Voici une partie de ce que le web-service doit recevoir :
Array ( [pays] => Array ( [0] => 2 [1] => 3 ) [tri] => libelle)

Voici la partie du web-service correspondant à la déclaration des types :
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$server->wsdl->addComplexType(
   'TabRech',
   'complexType',
   'array',
   '',
   'SOAP-ENC:Array',
   array(),
   array(
         array('ref'=>'SOAP-ENC:arrayType', 'arrayType'=>'xsd:integer[]')
    ),
   'xsd:integer'
);
 
$server->wsdl->addComplexType(
   'MapRech',
   'complexType',
   'array',
   '',
   'SOAP-ENC:Array',
   array(
         'tri' => array('name' => 'tri','type' => 'xsd:string'),
         // ...
         'pays' => 'SOAP-ENC:arrayType', 'arrayType'=>'tns:TabRech[]'
   ),
   array(),
   'tns:TabRech'
);
 
 
$server->register('GestionBase',
array(
      'recherche'=>'tns:MapRech'
),array(
         // éléments renvoyés
),'ATC','GestionBase');
J'ai essayé de renvoyer par exemple $recherche['pays'][0] et le web-service me dit :
wsdl error: () is not a supported type.
J'ai utilisé un peu de code pour débugger et voilà une partie de ce qui est mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
2010-04-26 14:56:32.348051 wsdl: in serializeType: name=recherche, type=ATC:MapRech, use=encoded, encodingStyle=, unqualified=qualified
value=array(7) {
  ["pays"]=>
  array(2) {
    [0]=>
    string(1) "2"
    [1]=>
    string(1) "3"
  }
  ["tri"]=>
  string(7) "libelle"
  // ...
}
Apparemment le tableau est bien récupéré par le web-service donc je ne comprends pas.

Si vous souhaitez plus de code, dites-le moi.

Merci de votre aide