6
Come JsHelper non più in CakePHP 3.0 è quindi quello che sto facendo è quello di salvare i miei dati del modulo nel database utilizzando AJAX
semplice forma ajax in CakePHP 3.0
devo solo due campi di input.
miei file sono:
- 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);
}
}
}
}
Nota: mio modello hanno solo
not empty
regola per entrambi i campi
tutto quello che sto facendo funziona bene, ma non penso di farlo nel modo giusto o come dovrebbe essere.
per favore aiutami cosa mi manca e cosa non ho bisogno di fare.
cosa succede se ho 13 campi nella tabella? Dovrei scrivere 13 righe $ this-> request-> data ['name'] = $ this-> request-> query ['name']; $ this-> request-> data ['age'] = $ this-> request-> query ['age']; ................... ?? è la loro una scorciatoia? – distromob