すべての Cakephp (2.1.2 を使用) ページを作成します。ユーザーにフィールドの数 (int) を入力するように促し、入力された数値に対してページで for ループを使用するようにします。
ここに追加ページのコードがあります
<h2>Please select how many fields you wish to add</h2></br>
<?php
print $this->Session->flash('flash', array('element' => 'alert'));
echo $this->Form->create('Field', array('action'=>'add'));
For(int i=0; i<'flash'; i++)
{
echo $this->Form->input('name',array('label'=>'Please Enter Field Name: ', 'type'=>'text'));
echo $this->Form->input('description',array('label'=>'Please Enter Field Description: ', 'type'=>'text'));
}
echo $this->Form->end('Click Here To Submit Template');
?>
ここにアラートのコードがあります
<script type="text/javascript">
prompt('How many fields?','<?php print $message; ?>');
</script>
問題は、alert.ctp で変数を作成し、その変数を for ループで使用して、ユーザー入力を受け取るフォームを出力する方法です。
編集:
Javascript 関数:
<script type="text/javascript">
var number_of_fields=prompt("How many fields?",'<?php print $message; ?>');
var field_html="";
for (i=0; i<number_of_fields; i++)
{
field_html +='<input type="text" name="data[FIELD]['+i+'][name]">';
}
$("#FORMID").append(field_html);
</script>
意見:
<?php
print $this->Session->flash('flash', array('element' => 'alert'));
echo $this->Form->create('Field', array('action'=>'add'));
echo $this->Form->end('Click Here To Submit Template');
?>
エラーは発生しませんが、フィールドを表示できません。フィールドを出力するためにビューに何を入れますか (ユーザーがフィールドを作成できるように、より多くの入力が必要になります)。