Acties:
  • 0 Henk 'm!

  • fikkie_84
  • Registratie: Januari 2004
  • Laatst online: 09-09 14:05
Ik ben nu al even bezig met drupal/php en ben op een probleem gestoten dat ik niet zelf kan oplossen.
Om te beginnen heb ik in drupal met de module webform een formulier gemaakt dat bezoekers kunnen invullen.
In dit formulier zitten enkele velden die ik graag zou willen tonen op een andere pagina samen met de username als overzicht.
Hiervoor ben ik gaan zoeken in de drupal api's en heb ik volgende api gevonden: webform_get_submission die ik als volgt gebruik:
PHP:
1
$formobj=webform_get_submission(1, null, $uid)


Dit geeft mij een object terug die ik mbv.
PHP:
1
$arr=get_object_vars($formobj);
omzet naar een array, met als resultaat:
code:
1
2
3
4
5
6
7
8
9
10
Array ( 
[sid] => 71 
[submitted] => 1254486103 
[remote_addr] => 
[uid] => 4 
[name] => Jef Vermeulen 
[status] => 1 
...
[22] => Array ( [value] => Array ( [0] => Utrecht ) ) 
)

Het gekke is:
PHP:
1
$arr["sid"]
tot en met:
PHP:
1
$arr["status"]
werken perfect met als verwachte output 71,1254486103,4,... . maar wanneer ik
PHP:
1
$arr[22]["value"][0]
doe krijg ik enkel 1 als resultaat in plaats van Utrecht.
Ik hoop dat iemand mij kan uitleggen wat ik verkeerd doe :s

Acties:
  • 0 Henk 'm!

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Is het niet
PHP:
1
$arr["data"][22]["value"][0]

Als ik naar de functie kijk die je in je link had gezet, staat daar namelijk
PHP:
1
$submissions[$row->sid]->data[$row->cid]['value'][$row->no] = $row->data;


(waarom wil je het object eigenlijk omzetten naar een array, en gebruik je het niet gewoon als object?)

:D/-<


Acties:
  • 0 Henk 'm!

  • fikkie_84
  • Registratie: Januari 2004
  • Laatst online: 09-09 14:05
semicolon schreef op vrijdag 30 oktober 2009 @ 18:54:
Is het niet
PHP:
1
$arr["data"][22]["value"][0]

Als ik naar de functie kijk die je in je link had gezet, staat daar namelijk
PHP:
1
$submissions[$row->sid]->data[$row->cid]['value'][$row->no] = $row->data;


(waarom wil je het object eigenlijk omzetten naar een array, en gebruik je het niet gewoon als object?)
Dat is de oplossing!
Ik kan niet geloven dat het zo simpel was, ik heb er een volledige dag op zitten kijken en uitproberen 8)7 .
Omtrent het omzetten naar een array, mijn kennis van php gaat nog niet zover en met arrays kan ik wel al een beetje werken.
Ook al omdat de key 22 een integer was en ik niet goed wist hoe ik variabelen in 22 (de array) kon benaderen :
PHP:
1
$formobj->22
werkt niet
terwijl
PHP:
1
 $formobj->sid
wel werkte, dus dacht ik dat het makkelijker was om te converteren naar een array.
Ik had al gekeken naar php.net objects maar ik zag niet direct een voorbeeld waarbij integers als key gebruikt worden.