J'essaie de cocher les cases en fonction des valeurs d'un tableau smarty.Smarty cocher les cases sélectionnées en utilisant array_search
Dans mon php
$smarty->assign('locations_array',array(4,6,9,7));
Je veux rechercher dans le tableau et s'il y a une correspondance cocher la case à cocher. Voici ce que j'ai essayé dans mon template mais je n'arrive pas à le faire fonctionner. Je ne sais pas comment je peux passer array_search l'aiguille et la meule de foin dont elle a besoin?
{foreach $locations as $x}
{if $x.id == $x.id|@array_search:$locations_array}
<label><input checked type="checkbox" name="locations[]" value="{$x.id}"/>{$x.title}</label>
{else}
<label><input type="checkbox" name="locations[]" value="{$x.id}" />{$x.title</label>
{/if}
{/foreach}
Est-ce possible sans créer de fonction personnalisée?
Je pense que je l'ai eu à travailler avec {if x.id $ | array_search: locations_array de $} – andrew
Le @ est utilisé que si la chose est un tableau et le tableau est PASED après la fonction. Le problème est que seule la dernière case est cochée malgré l'emplacement id qui correspondent aux id dans locations_array – andrew
andrew: Au lieu de: {if x.id $ | array_search: locations_array de $}, utilise toujours: { if $ x.id | array_search: $ locations_array! == false} sinon si $ x.id est trouvé dans la clé 0 du tableau, ce test échoue si vous ne le souhaitez pas. Voir avertissement ici: http://php.net/manual/en/function.array-search.php –