2010-09-18 29 views
0

Je tente d'afficher plusieurs réponses (en utilisant des cases à cocher) dans un formulaire. La question est de choisir ce mois votre disposition, voici mon code ...Publication d'un tableau dans php (smarty)

$smarty->assign('month', array('1' => 'January', '2' => 'February', '3' => 'March', '4' => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', '9' => 'September', '10' => 'October' 
                , '11' => 'November', '12' => 'December') ); 

Puis la ligne que j'utilise pour afficher les valeurs est la suivante ...

<span style="color:#000000;">'($_POST['monthsAvailable']) .'</span> 

Cependant, lorsque je reçois la email il lit juste "Array". Je me demandais quel est le format correct pour poster des tableaux? Tout conseil est le plus apprécié!

Répondre

0

si $_POST['monthsAvailable'] puis l'imprimer ne fera qu'imprimer un tableau. Définir une fonction quelque chose comme ceci:

function printMonths($array){ 
    global $smarty; 
    $out = ''; 
    foreach ($monthIndex in $array){ 
    $out .= $smarty['month'][$month].' '; 
    } 
    return $out; 
} 

... 

<span style="color:#000000;">'(printMonths($_POST['monthsAvailable'])) .'</span> 

Si $ _POST [ « monthsAvailable »] contient les noms des mois déjà, il suffit d'utiliser explode().

0

Essayez d'utiliser Smarty::foreach

côté serveur php

<?php 
$months = array( 
    '1' => 'January', 
    '2' => 'February', 
    '3' => 'March', 
    '4' => 'April', 
    '5' => 'May', 
    '6' => 'June', 
    '7' => 'July', 
    '8' => 'August', 
    '9' => 'September', 
    '10' => 'October', 
    '11' => 'November', 
    '12' => 'December'); 

$smarty->assign('months', $months); 
$smarty->assign('monthsAvailable', $_POST['monthsAvailable']); 
?> 

template Smarty

<ul> 
{foreach from=$monthsAvailable item=mIndex} 
    <li>{$months[$mIndex]}</li> 
{/foreach} 
</ul> 

Il devrait fonctionner au cas où le $ _POST [ 'monthsAvailable'] défini comme un tableau de mois index

$_POST['monthsAvailable'] = array('1','10','12'); 
+0

Merci pour votre aide Igor. Je vais essayer ça maintenant. – Jason