gpt4 book ai didi

ajax - cakephp 3.0 中的简单 ajax 表单

转载 作者:行者123 更新时间:2023-12-03 19:00:42 27 4
gpt4 key购买 nike

由于 JsHelper 不再出现在 cakephp 3.0 中,所以我正在做的是使用 ajax 将我的表单数据保存到数据库中

我只有两个输入字段。
我的文件是:

  • add.ctp
  • js.js
  • 员工 Controller .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);
    }
    }
    }
    }

    注意:我的模型只有 not empty两个字段的规则
    我正在做的所有工作都很好,但我认为我没有以正确的方式或应有的方式去做。
    请帮助我我所缺少的和我不需要做的。

    最佳答案

    去掉 autoRender 行,序列化你想要返回的数据:

    public function add() {

    $data = [];

    $emp=$this->Employees->newEntity();
    if($this->request->is('ajax')) {
    $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)) {
    $data['response'] = "Success: data saved";
    //echo $result->id;
    }
    else {
    $data['response'] = "Error: some error";
    //print_r($emp);
    }
    }

    $this->set(compact('data'));
    $this->set('_serialize', 'data');
    }

    serialize 函数告诉 Cake 它不期望该函数具有 View ,因此不需要 autoRender ( http://book.cakephp.org/3.0/en/views/json-and-xml-views.html )。

    关于ajax - cakephp 3.0 中的简单 ajax 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024565/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com