Checkboxen gemäss ID in Array setzen (Smarty)

Gifty43

Erfahrenes Mitglied
Hallo Leute,

Ich habe ein kleines Script in welchem die Leute auf einer Produkteliste neben jedem Produkt einen Haken setzen können, welches sie besitzen.

Nun habe ich zwei Array's - Im ersten Array sind sämtliche Produkte eingetragen und im Zweiten sind die ID's sämtlicher Produkte, welcher ein User besitzt.

Das ganze sieht dann so aus:

Code:
{foreach from=$products item=pro} 
<input name="produkt[]" type="checkbox" value="{$pro->id}"
{foreach from=$besitz item=besitz}
{if $pro->id == $besitz} checked{/if}
{/foreach}
> {$pro->title}
<br>
{/foreach}

Er sollte eigentlich die Checkbox bei jedem Produkt setzen, welches im Array $besitz drin steht. Doch dies tut er nicht.

Nun habe ich testeshalber folgendes gemacht, um zu sehen wie er die ganze Geschichte überhaupt interpretiert:
Code:
{foreach from=$products item=pro} 
<input name="produkt[]" type="checkbox" value="{$pro->id}"> {$pro->title} - 
{foreach from=$besitz item=besitz}
{$besitz}
{/foreach}
<br>
{/foreach}

Nun fällt mir auf, dass er nur beim ersten Produkt den ganzen Array $besitz checkt. Bei allen anderen Produkten checkt er nur die letzte ID des Array's.

Beispiel: Im $besitz-Array sind folgende ID's enthalten: 118,17,31. Neben dem ersten Produkt gibt er mir "118 17 31" aus, bei allen folgenden nur "31".

Woran kann das liegen, respektive was muss ich verbessern?

Besten Dank schonmal im Voraus für eure Hilfe.
 
Code:
{foreach from=$besitz item=besitz}
{$besitz}
{/foreach}

Kann es sein, dass hier $besitz überschrieben wird? Ich würde mal sagen, ja.

Dadurch ist in den Folgenden dann nur noch der letzte Eintrag (also der letzte Durchlauf der Schleife) vorhanden, was bei dir anscheinend "31" ist.
 
Hmm, guter (und wahrscheinlich richtiger) Einwand. ;-)

Doch wie kann ich das ändern? Ich kann das Array ja nicht mit {echo $besitz} ausgeben?
 
Code:
{foreach from=$besitz item=value}
{$value}
{/foreach}

Genau wie dein Beispiel dadrüber, durch eine Abkürzung o. ä.
 
OMG, logisch...:rolleyes: Sorry, manchmal verstehe ich mich selbst net...

Auf jeden Fall besten Dank nochmals für die Geduld sowie Hilfe - schon das zweite mal diese Woche.;)
 
Zurück