我在视图页面中创建了一个输入字段,如下所示
<div class="input text">
<label for="2">First Name (required) </label>
<input type="text" value="" style="width: 300px;" id="2" class="required" name="First Name"/>
</div>
<div class="input text">
<label for="5">Emailid</label>
<input type="text" value="" style="width: 300px;" id="5" name="Emailid"/><
/div>
<div class="input text">
<label for="6">Mobile Number</label>
<input type="text" value="" style="width: 30px;" id="6" name="Mobile Number"/>
<input type="text" value="" style="width: 30px;" id="6-1" name="Mobile Number"/>
<input type="text" value="" style="width: 70px;" id="6-2" name="Mobile Number"/>
</div>
这些都是在页面中生成的,.I正在检索CakePHp控制器中此页面中的内容值。
foreach ($_POST as $key => $value):
echo $key;echo $value;
endforeach;
对于以上所有字段,我得到了正确的答案,如First_Name=A&Emailid=aruna@tcs.com&Mobile_Number=3
但仅就我的Mobile Number字段而言,我得到的是最后一个id的值,类似于6-2。HOw检索在三个字段(6,6-1,6-2)中给出的移动号码的全部值??请推荐我。
编辑:
foreach ($_POST as $key => $value):
$mobile_number = implode('', $_POST['number']);
echo $mobile_number;
$this->data['Result']['form_id']=$formid;
$this->data['Result']['label']=Inflector::humanize($key);
$this->data['Result']['value']=$value;
$this->Form->submitForm($this->data);
endforeach;
我使用上面的方式保存密钥及其值(例如.控制器不知道填充页中的所有字段是什么)。填充页可能/可能不包含字段电话Number.How do,我保证该页有Phonenumber字段,并使用其键保存其值。
注意:$key是字段名,$value是字段的值。只有Phonenumber字段的值是数组,而在所有其他情况下,它只是一个值。
发布于 2009-07-16 06:30:45
如果你在使用蛋糕,你真的应该学习和使用蛋糕。
就像蛋糕上的水流一样:
Form page -> Submit
^ |
| v
| Controller // Form data is in $this->data
| |
| v
| $this->Model->save($this->data); -> Model
| |
| v
-------- Controller <----------------------- Data validation
validation no good |
| validation okay
v
Controller <----------------------- Actually save data
|
v
Go somewhere else
这对你意味着什么:
$this->data
是表单正确工作的核心。不碰$_POST!使用用于创建表单的蛋糕方法,并使用与数据库中使用的字段相同的名称。这为很多蛋糕“自动”提供了便利。您不需要手工组装一个数组来传递到数据库,而是对从开始到结束的所有东西都使用相同的名称,只需传递数组。$this->data
将自动从Controller传递回视图(即表单),如果使用Cake FormHelper,则字段将自动从该字段中填充。
在提交表单和保存数据之间,您应该尽量减少所做的工作。理想情况下,您的控制器看起来仅如下所示:
if (!empty($this->data)) {
if ($this->Model->save($this->data)) {
$this->redirect(array('action' => 'next_step'));
}
}
这就是你所需要的全部代码,它会
如果表单字段与数据库字段不对应1:1,则只需要在if(!empty($this->data))
和$this->Model->save($this->data)
之间调整所需的位
if (!empty($this->data)) {
$this->data['Model']['mobile_number'] = implode('-', $this->data['Model']['mobile_number']);
if ($this->Model->save($this->data)) {
$this->redirect(array('action' => 'next_step'));
}
}
如果要验证提交的表单数据是否完整,则只需验证填写模型中的适当规则。每当您发出$this->Model->save()
时,模型将在保存之前自动检查规则,如果不满足,则自动检查return false
。
https://stackoverflow.com/questions/1135316
复制相似问题