[php] nusoap multiple items verzenden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste Mensen,

Dmv van NuSoap zou ik graag de volgende XML verzenden:
code:
1
2
3
4
5
6
...
<productKeys>
   <int>32</int>
   <int>67</int>
</productKeys>
...


Door een array aan nusoap mee te geven kan je meerdere subitems onder een item hangen. bijv:
PHP:
1
2
3
4
5
6
7
8
9
$array=("mainitem"=> array("subitem1"=>val1,"subitem2"=>val2));
$result = $soapclient->call('functie',$array);

//geeft:

<mainitem>
   <subitem1>val1</subitem1>
   <subitem2>val2</subitem2>
</mainitem>

Alleen werkt dit niet omdat de key's van de array tweemaal hetzelfde zijn. Dus tweemaal "int".
Als ik nu het volgende doe:
PHP:
1
2
3
4
5
6
$ret="
   <int>32</int>
   <int>67</int>
";
$pKeys = array('productKeys'=>$ret);
$result = $soapclient->call('functie',$pKeys);

Dan krijg ik de volgende reponse:
code:
1
2
3
4
5
6
<soapVal>
<productKeys xsi:type="xsd:string">
&lt;int&gt;32&lt;/int&gt;
&lt;int&gt;21&lt;/int&gt;
</productKeys>
</soapVal>

Wat doe ik nu niet goed? Het lijkt me dat je gewoon meerdere items (hier: <int>) zou moeten kunnen verzenden. B.v.d.

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Ik ken NuSoap niet specifiek, maar ik vond dit:
NuSOAP serializes basic PHP types and (associative) arrays as expected. However, if your want to pass structures, or arrays of structures, you must wrap them into classes. NuSOAP will then serialize the member variables of the object (or array of objects).
bron

dus ik denk dat:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Int {

    var $value;

    function Int($value) {
        $this->value = $value;
    }

}

$productKeys = array();
$productKeys[] = new Int(32);
$productKeys[] = new Int(67);

$result = $soapclient->call('functie',$productKeys);

wel gaat werken

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mmm, idd...

Ik zal het vanavond eens proberen, maar ik heb er wel
een goed gevoel bij.

Bedankt voor deze info.