6
As JsHelper nie więcej w CakePHP 3.0 jest więc to, co robię jest uratować moje dane formularza do bazy danych przy użyciu ajax
prosty formularz ajax w CakePHP 3.0
mam tylko dwa pola wejściowe.
moje pliki są:
- add.ctp
- js.js
- EmployeesController.php
add.ctp
$this->Form->create('Employees'); $this->Form->input('name', array('id'=>'name')); $this->Form->input('age', array('id'=>'age')); $this->Form->button('Add Info', array( 'type'=>'button', 'onclick'=>'infoAdd();' )); $this->Form->end();
js.js
function infoAdd() { var name=$("#name").val(); var age=$("#age").val(); $.get('/employees/info?name='+name+"&age="+age, function(d) { alert(d); }); }
EmployeesController.php
class EmployeesController extends AppController {
public $components=array('RequestHandler');
public function add() {
$emp=$this->Employees->newEntity();
if($this->request->is('ajax')) {
$this->autoRender=false;
$this->request->data['name']=$this->request->query['name'];
$this->request->data['age']=$this->request->query['age'];
$emp=$this->Employees->patchEntity($emp,$this->request->data);
if($result=$this->Employees->save($emp)) {
echo "Success: data saved";
//echo $result->id;
}
else {
echo "Error: some error";
//print_r($emp);
}
}
}
}
Uwaga: mój model ma tylko
not empty
regułę dla obu polach
wszystko, co robię, działa dobrze, ale nie sądzę, że robię to we właściwy sposób lub tak jak powinno być.
proszę mi pomóc, czego mi brakuje i czego nie muszę robić.
co jeśli mam 13 pól w tabeli? Powinienem napisać 13 wierszy $ this -> request-> data ['name'] = $ this-> request-> query ['name']; $ this-> request-> data ['age'] = $ this-> request-> query ['age']; ................... ?? jest ich skrót? – distromob