Gegevens uit webservice ophalen
Kan wel de webservice benaderen maar de gegevens kan ik niet ophalen en als ik
var_dump gebruik krijg ik deze zo te zien:
http://19-------/:tempuri-orgarray(2) { ["klantgegevens"]=> array(1) { [0]=> object(stdClass)#2 (7) { ["klantnr"]=> int(552066) ["afleveradres"]=> int(5520665) ["naam"]=> string(29) "-- "---"" ["adres"]=> string(12) "---" ["postcode"]=> string(7) "------" ["plaats"]=> string(4) "----" ["land"]=> string(2) "NL" } } ["artikelgegevens"]=> array(5) {[0]=> object(stdClass)#3 (7) { ["zendnota"]=> int(129593) ["picknr"]=> int(157333) ["ordernr"]=> int(150867) ["artnr"]=> string(6) "343211"
En als var_dump weghaal en foreach gebruik krijg niks te zien.
Wat is mis. Graag uw hulp.
Alvast bedankt!
Ik gebruik de volgende scripts
<html>
<body>
<form action="#" method="post">
Ritnummer: <input type="text" name="ordernr" />
Land: <input type="text" name="land" />
<input type="submit" value="Volgende"/>
</form>
</body>
</html>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if( $_SERVER['REQUEST_METHOD'] == "POST" ) {
ini_set("soap.wsdl_cache_enabled", 0);
$webservice_server = "----";
$webservice_connection_string = "http://".$webservice_server.":---------";
echo $webservice_connection_string;
$client = new SoapClient( $webservice_connection_string, array( 'soap_version' => SOAP_1_1 ) );
$ritnummers = $client->verzamelfoutformulier($_POST["land"], $_POST["ordernr"]);
foreach ($ritnummers as $verzamelfoutformulier) {
echo "<td align='center'>".$ritnummers->klantnr."</td><td align='center'>".$ritnummers->afleveradres."</td><td align='center'>".$ritnummers->naam."</td><td>".$ritnummers->postcode."</td><td align='center'>".$ritnummers->plaats."</td><td align='center'>".$ritnummers->picknr."</td><td align='center'>".$ritnummers->artomschr."</td></tr>";
}
}
?>
if( $_SERVER['REQUEST_METHOD'] == "POST" ) {
ini_set("soap.wsdl_cache_enabled", 0);
$webservice_server = "----";
$webservice_connection_string = "http://".$webservice_server.":---------";
echo $webservice_connection_string;
$client = new SoapClient( $webservice_connection_string, array( 'soap_version' => SOAP_1_1 ) );
$ritnummers = $client->verzamelfoutformulier($_POST["land"], $_POST["ordernr"]);
foreach ($ritnummers as $verzamelfoutformulier) {
echo "<td align='center'>".$ritnummers->klantnr."</td><td align='center'>".$ritnummers->afleveradres."</td><td align='center'>".$ritnummers->naam."</td><td>".$ritnummers->postcode."</td><td align='center'>".$ritnummers->plaats."</td><td align='center'>".$ritnummers->picknr."</td><td align='center'>".$ritnummers->artomschr."</td></tr>";
}
}
?>
Want nu wordt alles in een array gezet, maar wat gebeurd er daarna met je gegevens?
Wil graag dat ik als een ritnummer invul dan de gegevens laten zien die ik heb laten echo'en. Nu vul ik ritnummer maar ik krijg allen dit te zien
http://19-------/:tempuri-org
Dus na de insert, select je gewoon het record met je ritnummer en echo je deze op het scherm waar je het wilt hebben.
Ik moet nu insert into en select gebruiken i.p.v foreach??
Murtada Helo op 03/08/2012 13:10:00:
Ik moet nu insert into en select gebruiken i.p.v foreach??
Je moet altijd een insert doen als je data in een database wilt zetten. Nu staat het in een array, maar wordt volgens mij niets mee gedaan.
Wat zie je in die database?
Code (php)
1
2
3
2
3
<?php
echo "<td align='center'>".$ritnummers->klantnr."</td><td align='center'>".$ritnummers->afleveradres."</td><td align='center'>".$ritnummers->naam."</td><td>".$ritnummers->postcode."</td><td align='center'>".$ritnummers->plaats."</td><td align='center'>".$ritnummers->picknr."</td><td align='center'>".$ritnummers->artomschr."</td></tr>";
?>
echo "<td align='center'>".$ritnummers->klantnr."</td><td align='center'>".$ritnummers->afleveradres."</td><td align='center'>".$ritnummers->naam."</td><td>".$ritnummers->postcode."</td><td align='center'>".$ritnummers->plaats."</td><td align='center'>".$ritnummers->picknr."</td><td align='center'>".$ritnummers->artomschr."</td></tr>";
?>
en dan bedoel k klantnr, afleveradres etc ... ?
doe is gewoon $ritnummers['klantnr']
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
array(2) {
["klantgegevens"]=> array(1) {
[0]=> object(stdClass)#2 (7) {
["klantnr"]=> int(552066)
["afleveradres"]=> int(5520665)
["naam"]=> string(29) "-- "---""
["adres"]=> string(12) "---"
["postcode"]=> string(7) "------"
["plaats"]=> string(4) "----"
["land"]=> string(2) "NL"
}
}
["artikelgegevens"]=> array(5) {
[0]=> object(stdClass)#3 (7) {
["zendnota"]=> int(129593)
["picknr"]=> int(157333)
["ordernr"]=> int(150867)
["artnr"]=> string(6) "343211"
["klantgegevens"]=> array(1) {
[0]=> object(stdClass)#2 (7) {
["klantnr"]=> int(552066)
["afleveradres"]=> int(5520665)
["naam"]=> string(29) "-- "---""
["adres"]=> string(12) "---"
["postcode"]=> string(7) "------"
["plaats"]=> string(4) "----"
["land"]=> string(2) "NL"
}
}
["artikelgegevens"]=> array(5) {
[0]=> object(stdClass)#3 (7) {
["zendnota"]=> int(129593)
["picknr"]=> int(157333)
["ordernr"]=> int(150867)
["artnr"]=> string(6) "343211"
(waarbij aan het einde dus wel wat haakjes ontbreken en vast nog meer data ook)
Als je dus de klantgegevens wilt aanspreken zal je dat zo moeten doen:
$ritnummers is namelijk een array met twee keys (klantgegevens en artikelgegevens).
$ritnummers["klantgegevens"] is dan ook weer een array met maar 1 numerieke key.
Elk element in die laatste array is weer een object.
Kijk eens of je op deze manier wel iets op het scherm krijgt. Als je het op het scherm krijgt kan je ook verwerken in de database.
klantnr:1234
afleveradres: labla
postcode:0000aa
.
.
Dat bedoelde ik
Zie mijn post, zo moet je ze volgens mij aanspreken. Al geprobeerd?
Hij doet het nu ik krijg de resultaten te zien, waarom krijg ik steeds url mee hoe kan ik dit vermijden?
.http://19----------------------------------------------------wsdl?targetURI=urn:tempuri-org
op regel 8 weghalen wellicht?
omdat je die echoedd.. ( regel 8 ) even eruit knikkeren :)
Bedankt!!
van ["artikelgegevens"] laat hij nu alleen maar een artikel zien, terwijl deze meer artikels zijn. welke functie moet ik nu gebru8iken om alle artikelen die beschikbaarzijn van dit ritnummer te krijgen.
Alvast bedankt!
Als het meerdere records bevat (array), kun je dat toch met een foreach oplossen?
print "<td align='center'>".$ritnummers["artikelgegevens"][0]->artnr."</td>";
print "<td align='center'>".$ritnummers["artikelgegevens"][0]->artomschr."</td>";
print "<td align='center'>".$ritnummers["artikelgegevens"][0]->geleverd."</td></tr>";
}
Dan moet je dus niet $ritnummers gebruiken maar $verzamelfoutformulier.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php foreach ($ritnummers as $verzamelfoutformulier)
{
print "<tr>";
print "<td align='center'>".$verzamelfoutformulier["artikelgegevens"][0]->artnr."</td>";
print "<td align='center'>".$verzamelfoutformulier["artikelgegevens"][0]->artomschr."</td>";
print "<td align='center'>".$verzamelfoutformulier["artikelgegevens"][0]->geleverd."</td></tr>";
?>
{
print "<tr>";
print "<td align='center'>".$verzamelfoutformulier["artikelgegevens"][0]->artnr."</td>";
print "<td align='center'>".$verzamelfoutformulier["artikelgegevens"][0]->artomschr."</td>";
print "<td align='center'>".$verzamelfoutformulier["artikelgegevens"][0]->geleverd."</td></tr>";
?>
Wat gebeurd er als je print_r ($ritnummers); doet? Wat krijg je te zien op je scherm?
array(2) { ["klantgegevens"]=> array(1) { [0]=> object(stdClass)#2 (7) { ["klantnr"]=> int(...) ["afleveradres"]=> int(..) ["naam"]=> string(29) "-- "---"" ["adres"]=> string(12) "---" ["postcode"]=> string(7) "------" ["plaats"]=> string(4) "----" ["land"]=> string(2) "NL" } } ["artikelgegevens"]=> array(5) {[0]=> object(stdClass)#3 (7) { ["zendnota"]=> int(...) ["picknr"]=> int(...) ["ordernr"]=> int(...) ["artnr"]=> string(6) "...." [artnr] => ...[artomschr] => ..... [geleverd] => 2 [locatie] => ... ) [6] => stdClass Object ( [zendnota] => ...[picknr] => ...[ordernr] => ..[artnr] => ..[artomschr] => ..-.......[geleverd] => 6 [locatie] => ../..) [7] => stdClass Object ( [zendnota] => ..[picknr] => ..[ordernr] => ..[artnr] => ..[artomschr] => ... [geleverd] => 2 [locatie] => ... ) [8] => stdClass Object ( [zendnota] => ...[picknr] => ...[ordernr] => ..[artnr] => ....[artomschr] =>... [geleverd] => 6 [locatie] => ..) ) ) .....................................................................................