Ik ben erg nieuw voor wat betreft het concept XML-RPC via PHP, maar tot nu toe is alles redelijk goed verlopen. Echter, nu kom ik in de problemen door het volgende.
Een simpele XML-RPC in PHP ziet er in mijn geval bijvoorbeeld zo uit:
Hierdoor krijg ik een berg aan niet zo waardevolle data toegestuurd, maar goed, dat doet er niet zoveel toe - het gaat erom dat dit in deze situatie werkt.
Nu kan ik via de property "Fields" opgeven welke data ik uit de database wil hebben. Als ik bijvoorbeeld alleen de velden onder "City" geretourneerd wil hebben, doe ik dit:
In de variabele $velden stop ik "city", wat uiteindelijk meegaat in de RPC. Nou is het in de praktijk niet de bedoeling dat je slechts één veld geretourneerd krijgt, maar meerdere. Ik wil het eigenlijk gebruiken om enkele velden uit te sluiten door die niet op te geven.
Om dat te doen, zou ik dus waarschijnlijk $velden moeten aanpassen, maar ik snap dus niet hoe!
Stel dat ik niet alleen "city", maar ook "name" wil hebben. Ik heb de volgende dingen geprobeerd:
- $velden = "city, name";
- $velden = "city; name";
- $velden = array("city", "name");
In het laatste voorbeeld heb ik ook geprobeerd om de declaratie "string" in de RPC te veranderen naar "array", maar ook dat hielp niet.
In al deze gevallen kreeg ik Error 200.
Wie weet hoe ik dit stukje code aanpas, zodat ik meerdere waarden aan die property mee kan geven? Ik krijg nu allemaal data waar ik niets mee moet en/of die net wat anders zijn geformatteerd, waardoor sommige scriptjes van mij niet goed werken. Met "fields" zou ik die achterwege kunnen laten.
Een simpele XML-RPC in PHP ziet er in mijn geval bijvoorbeeld zo uit:
code:
1
2
3
4
5
6
7
8
9
10
| <? $methodName = "bookings.getHotels"; $countrycode = "nl"; $language = "en"; $struct=new xmlrpcval(array( "countrycodes" => new xmlrpcval($countrycode, "string"), "languagecodes" => new xmlrpcval($language, "string")), "struct"); ?> |
Hierdoor krijg ik een berg aan niet zo waardevolle data toegestuurd, maar goed, dat doet er niet zoveel toe - het gaat erom dat dit in deze situatie werkt.
Nu kan ik via de property "Fields" opgeven welke data ik uit de database wil hebben. Als ik bijvoorbeeld alleen de velden onder "City" geretourneerd wil hebben, doe ik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <? $methodName = "bookings.getHotels"; $countrycode = "nl"; $language = "en"; $velden = "city"; $struct=new xmlrpcval(array( "countrycodes" => new xmlrpcval($countrycode, "string"), "languagecodes" => new xmlrpcval($language, "string")), "fields" => new xmlrpcval($velden, "string") "struct"); ?> |
In de variabele $velden stop ik "city", wat uiteindelijk meegaat in de RPC. Nou is het in de praktijk niet de bedoeling dat je slechts één veld geretourneerd krijgt, maar meerdere. Ik wil het eigenlijk gebruiken om enkele velden uit te sluiten door die niet op te geven.
Om dat te doen, zou ik dus waarschijnlijk $velden moeten aanpassen, maar ik snap dus niet hoe!
Stel dat ik niet alleen "city", maar ook "name" wil hebben. Ik heb de volgende dingen geprobeerd:
- $velden = "city, name";
- $velden = "city; name";
- $velden = array("city", "name");
In het laatste voorbeeld heb ik ook geprobeerd om de declaratie "string" in de RPC te veranderen naar "array", maar ook dat hielp niet.
Wie weet hoe ik dit stukje code aanpas, zodat ik meerdere waarden aan die property mee kan geven? Ik krijg nu allemaal data waar ik niets mee moet en/of die net wat anders zijn geformatteerd, waardoor sommige scriptjes van mij niet goed werken. Met "fields" zou ik die achterwege kunnen laten.
[ Voor 11% gewijzigd door Verwijderd op 22-09-2004 23:40 ]