beste mensen,
ik heb een foreach lus gemaakt:
<?
//afd1
foreach ( $xml->blokA->afd1 as $afd1 ){

foreach ( $afd1 as $field => $value ){

$form -> setValue( $field, $value );

}
}
?>

nu zou ik echter willen dat deze ook nog eens herhaald zou worden, ik heb namelijk 10 afdelingen, maar ik krijg dit op geen enkele manier voor elkaar.

hoe moet ik dit aanpakken?
MvG frits
Moet je 10x een nieuw xml document ophalen of worden die afdelingen dan in een ander block gezet? blockA, blockB, blockC enz?

Ik kan vanuit hier niet zien hoe jou xml parser werkt helaas.
de afdelingen worden in verschillende blokken gezet.

nu doe ik het zeg maar zo:
<?
//blokA afd1
foreach ( $xml->blokA->afd1 as $afd1 ){
print_r ( $afd1 );

foreach ( $afd1 as $field => $value ){

$form -> setValue( $field, $value );

}
}
//blokA afd2
foreach ( $xml->blokA->afd2 as $afd2 ){

foreach ( $afd2 as $field => $value ){

$form -> setValue( $field, $value );

}
}
?>
en dan 10x en dat wil ik graag loopen

hiermee schrijf ik de volgende xml code:
<?
<afd1>
<kapbreedte1a>4.27</kapbreedte1a>
<traliebreedte1a>12.80</traliebreedte1a>
<tralies1a>9</tralies1a>
<padbreedte1a>8</padbreedte1a>
<midden_koppad1a>Kop</midden_koppad1a>
<vakafstand1a>7</vakafstand1a>
<inclpad1a>6</inclpad1a>
<groepslengte1a>42</groepslengte1a>
<poothoogte1a>5</poothoogte1a>
<dekhelling1a>4</dekhelling1a>
<dekglas1a>3</dekglas1a>
<gevelglas1a>2</gevelglas1a>
<oppervlakte1a>4838.4</oppervlakte1a>
<binnentemperatuur1a>4</binnentemperatuur1a>
<buitentemperatuuropen1a>5</buitentemperatuuropen1a>
<scherm1a>Ja</scherm1a>
</afd1>
?>
en dat dan ook 10 x, afd1 2 3 4....
het script van Jip wat aangepast:

<?php

for ($i = 0; $i <= 10; $i++) {

foreach ($xml->blokA->afd.$i as $afd.$i ) {

foreach ( $afd.$i as $field => $value ) {

$form -> setValue( $field, $value );

}
}
}

?>

geen idee of het werkt, maar probeer het uit zou ik zeggen ;-)
Jip schreef op 03.07.2006 15:52

Volgens mij moet zoiets het wel doen. Anders moet je even een puntje proberen te zetten tussen de variabele en $i.


deze optie had jip ook al opgegeven en had ik zelf ook al geprobeerd en werkt helaas niet...
De code van php Newbie heeft een grotere kans om te slagen denk ik.
ik zie niet wat er anders aan is op de punten tussen de varibelen na.
en dat heb ik al geprobeert! en werkt helaas niet!
<?
//afd1
foreach ( $xml->blokA as $afd ){
foreach ( $xml->blokA->$afd as $crnt_afd ){

foreach ( $crnt_afd as $field => $value ){

$form -> setValue( $field, $value );

}
}
}
?>

Dit zou toch moeten werken...
ik heb de code iets aan moeten passen maar hij werkt nu!

<?
//Blok A
foreach ( $xml->blokA as $afd ){

foreach ( $afd as $crnt_afd ){

foreach ( $crnt_afd as $field => $value ){

$form -> setValue( $field, $value );

}
}
}
?>

ik zat hier idd ook aan te denken maar dacht dat het via een autoincrement ook moest lukken dus niet

bedankt voor het helpen allemaal!

frits

Reageren