4

いくつかの行を表示するループを持つフォームを作成しました。フォームヘルパーを使用して、各行を選択します。作成するIDはすべて同じですが、IDにカウンターや定義情報を追加する方法はありますか?

私は$this->Form->input('city_id')自分の都市モデルから選択した都市を出力するために使用しています。すべてのIDはModelCityIdです。ModelCityId1 、、、などのようなものを取得したいのですが、ModelCityId2これModelCityId3は可能ですか?または、オプションをループで表示するためのより良い方法はありますか?

あなたが持っているかもしれないどんな提案にも感謝します。

これがコードの関連部分です。

while ($current_date != $departure_date) {
  $current_date = date("d-M-y", strtotime($current_date . " +1 day"));
  $output .= '<tr>';
  $output .= '<td>'.$current_date.'</td>';
  // irrelevant other columns
  $output .= '<td>'.$this->Form->input('city_id', array('label' => '', 'empty' => true)).'</td>';
  $output .= '</tr>';
}
4

3 に答える 3

3

かゆみが指摘するように、whileループ内のカウンターを使用して一意の番号を取得するだけです。

次に、IDフィールドに割り当てるだけです。

$this->Form->input('city_id', array('id' => 'somvalue' . $i));

$iループで定義されていると仮定します。

于 2011-03-02T06:09:20.480 に答える
1

編集:なぜあなたはこのようなことをすることができないのですか:

$counter = 0;
while ($current_date != $departure_date) {
  $current_date = date("d-M-y", strtotime(date("Y-m-d", strtotime($current_date)) . " +1 day"));
  $output .= '<tr>';
  $output .= '<td>'.$current_date.'</td>';
  // irrelevant other columns
  $output .= '<td>'.$this->Form->input('city_id' . $counter, array('label' => '', 'empty' => true)).'</td>';
  $output .= '</tr>';
  $counter++;
}
于 2011-03-02T05:46:00.380 に答える
1

IDが同じ場合、名前も同じです。あなたがそれを提出するとき、それはあなたのデータを台無しにするでしょう。あなたはこの構文を探しています:

$this->Form->input("ModelName.$i.city_id", array(...))

フォームを作成しているものを使用ModelNameします(つまり、と同じ$this->Form->create('ModelName'))。

于 2011-03-02T07:18:10.390 に答える