2009-05-19 10 views
0

Ich entwickle eine Website mit dem CakePHP-Framework. Ich habe ein Formular, das eine Liste von Entitäten anzeigt, mit einem Kontrollkästchen für jeden, mit dem Sie es auswählen können. Sie drücken dann eine Schaltfläche am unteren Rand des Formulars mit der Meldung "Bearbeiten ausgewählt".Verarbeitung mehrerer URL-Werte in CakePHP

Mein üblicher Ansatz besteht darin, jedem Kontrollkästchen den gleichen Namen zu geben (z. B. row_id) und die primäre ID als value des Eingangs zu verwenden. Wenn Sie jedoch das Formular absenden, scheint CakePHP nur eins der Checkbox-Werte an den Controller in $this->params['url'], anstatt irgendeine Art von Liste, wie ich erwarten würde.

Irgendwelche Tipps zur richtigen Handhabung, damit ich herausfinden kann, welche Zeilen angekreuzt wurden?

Antwort

1

Wenn Sie die Formhelper verwenden, ist der einfachste Weg, um Ihre Felder wie folgt zu erstellen:

echo $form->input('ModelName.0.row_id', /* snip */) 
echo $form->input('ModelName.1.row_id', /* snip */) 

Etc .. Sie erhalten den Punkt. Wenn es eine dynamische Liste ist, gibt es immer die for Schleife.

Wenn das Formular gebucht wird, diese sollten Sie eine Server-Side-Array geben wie folgt aus ($ this-> data):

array 
(
    ['ModelName'] => array 
    (
     [0] => array 
     (
      [row_id] => value 
     ), 
     [1] => array 
     (
      [row_id] => value 
     ) 
    ) 
) 

Dann können Sie das Set Utility-Klasse verwenden, um Ihre IDs zu extrahieren (und Chaos mit deinen Daten :))

Verwandte Themen