如何在我的CakePHp控制器中检索Mobile Number字段值
我在查看页面中创建了一个输入字段,如如何在我的CakePHp控制器中检索Mobile Number字段值,php,html,cakephp,Php,Html,Cakephp,我在查看页面中创建了一个输入字段,如 <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> <d
<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>
对于上述所有领域,我得到了如下正确答案
First_Name=A&Emailid=aruna@tcs.com&移动电话号码=3
但仅对于我的手机号码字段,我就得到了最后一个id的值,如6-2。为什么。?如何检索三个字段(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;
我使用上面的方法保存键及其值(即,控制器不知道填充页面中的所有字段都是什么)。fillpage可能/可能不包含字段Phonenumber。如何确保该页具有Phonenumber字段并使用键保存其值
注意:$key是字段名,$value是我的字段值。仅对于Phonenumber字段,值是数组,在所有其他情况下,它只是一个值。如果您正在使用Cake,您确实应该学习并使用Cake 简单介绍一下蛋糕中的流程:
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->Model->save($this->data)之间调整所需的位。
:
如果要验证提交的表单数据的完整性,请仅执行以下操作。无论何时发出
$this->Model->save()
,模型都会在保存前自动检查规则,如果不符合规则,则返回false
。首先,您应该使用Cake方法创建表单,并使用Cake$this->data
变量处理结果。到目前为止,这段代码没有什么特别之处。实际上,我在其他函数中也在做同样的事情。但是在这个提交操作中,控制器不知道字段名是什么,就像你说的手机号码一样。仅此而已,我使用的是类似于foreach的$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$这->数据['Result']['label']=屈折因子::人性化($key)$此->表单->提交表单($this->data);endforeach;不要使用$\u POST!是的,您可以,因为CakePHP中仍然有PHP,但是您实际上没有使用Cake。要么用蛋糕的方式做,要么根本不用蛋糕。如果你做一个或另一个,你可能不会有这个问题。另外,$this->Form->submitForm($this->data)
有什么作用?$this->Form->submitForm($this->data)将我所有的控制器设置发送到保存数据库条目的模型。我会检查是否可以用一个简单的$this->Model->save($this->data)
来代替。如果绝对必要,在模型中创建一个beforeSave()
hook。不管怎样,我肯定会重新命名这个函数。表单已经提交,这个函数名令人尴尬地误导。
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
if (!empty($this->data)) {
if ($this->Model->save($this->data)) {
$this->redirect(array('action' => 'next_step'));
}
}
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'));
}
}