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?
Essayez 'appliances1-> appliance_type> ', bien que print_r montre des tableaux: /' = $ displayData ['appliances1'] ['type_appareil']?> ' –
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 –
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. –