2017-09-26 5 views
1

OK, j'ai essayé l'info d'une autre suggestion sur stackexchange, mais il me semble qu'il manque quelque chose.Sortie sous-formulaire Joomla

J'ai un sous-formulaire dans une vue d'administration pour un composant sur lequel je travaille (il s'agissait de champs précédemment répétables). Admin fonctionne parfaitement, mais j'ai de la difficulté à afficher correctement le fichier json sur la vue du site principal.

Les champs qui sont attirés dans la vue sont dans une mise en page, donc c'est un peu différent de la vue du site ($ displayData au lieu de $ items).

Dans le db j'ai un champ appelé les appareils, et 4 points sur le terrain sont {"appliances1":{"appliance_type":"Dishwasher"},"appliances2":{"appliance_type":"Range"},"appliances3":{"appliance_type":"Microwave"},"appliances4":{"appliance_type":"Washer/Dryer"}}

OK. Cela semble bon et correctement formaté.

Sur le frontend, dans la mise en page pour une vue, j'ai:

<?php 
print_r($displayData->appliances); 

foreach ($displayData->appliances as $item) : ?> <div> 
<p> 
<?php echo $displayData->appliance_type; ?> 
</p> 
</div> 
<?php endforeach; ?> 

les print_r montre:

Appliances Array ([appliances1] => Array ([appliance_type] => Dishwasher) [appliances2] => Array ([appliance_type] => Range) [appliances3] => Array ([appliance_type] => Microwave) [appliances4] => Array ([appliance_type] => Washer/Dryer)) 

OK. encore une fois, ça a l'air bien. Je vais enlever cela dès qu'il fonctionne correctement.

Le problème est que

<p> 
<?php echo $displayData->appliance_type; ?> 
</p> 

n'affiche rien.

Je peux voir dans le code, qu'il est fait correctement le foreach, mais ce n'est pas saisir quoi que ce soit à partir du tableau:

Array ([appliances1] => Array ([appliance_type] => Dishwasher) [appliances2] => Array ([appliance_type] => Range) [appliances3] => Array ([appliance_type] => Microwave) [appliances4] => Array ([appliance_type] => Washer/Dryer)) <div> <p> </p> </div> <div> <p> </p> </div> <div> <p> </p> </div> <div> <p> </p> </div> 

Toute réflexion sur ce que je peux être absent?

+0

Essayez 'appliances1-> appliance_type> ', bien que print_r montre des tableaux: /' ' –

+0

Problème potentiel avec les sous-formulaires auxquels ils ajoutent un nombre différent après les appliances pour chaque nouvelle entrée: appliances1, appliances2, appliances3, etc –

+0

Vous devrez peut-être passer à travers array_walk ou tel et le normaliser pour l'utilisation. Vous ne pouvez pas simplement sauter un niveau et s'attendre à ce qu'il fonctionne. –

Répondre

1

OK. Je savais que je ne serais pas capable de dormir jusqu'à ce que j'ai abordé cela. Il ne peut pas être le plus propre, encore, mais cela fonctionne pour sortir des données à partir d'un sous-formulaire Joomla:

<?php $records = $displayData->appliances; ?> 
<?php foreach ($records as $key => $value) { 
    echo $value["appliance_type"] ."<br>"; 
    } 
?> 

Résultat: ?

Appliances 

Dishwasher 
Range 
Microwave 
Washer/Dryer 
+0

Merci d'être revenu et d'avoir posté la réponse – Eoin