2

すべての 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');

?>

エラーは発生しませんが、フィールドを表示できません。フィールドを出力するためにビューに何を入れますか (ユーザーがフィールドを作成できるように、より多くの入力が必要になります)。

4

1 に答える 1

0

no: of の値を javascript で取得しているため、入力フィールドを作成するために CakePHP で使用される規則に従って、JavaScript でもフィールドを作成することをお勧めします。したがって、javascript for loop を使用して、フィールドを js 変数に連結し、javascript を使用してこの html 入力をフォームに挿入できます。

例えば:

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[MODELNAME]['+i+'][name]">';
}
$("#FORMID").append(field_html); 

これが理にかなっていることを願っています

于 2012-07-30T07:04:48.657 に答える