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

由于我们在 javascript 中获得了 no: of required 的值,我建议也按照 cakephp 使用的约定在 javascript 中创建字段来创建输入字段。因此,您可以使用 javascript for 循环并将字段连接到 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 回答