如何使用cakephp3中的ajax发送数据?

时间:2016-08-12 17:43:30

标签: jquery ajax cakephp

我在做cakephp3。我有两个下拉选择。第一个菜单列表值与加载页面一起显示,然后第二个菜单列表值将由用户从第一个菜单中选择。我用ajax执行此操作,但我不知道如何向/从ajax发送/获取数据。

在视图中(addroom.ctp):

Service service = new Service();
Call  call    = (Call) service.createCall();


QName q = new QName("http://rpc.xml.coldfusion", "QueryBean");
BeanSerializerFactory bsf =   new BeanSerializerFactory(QueryBean.class, q);   // step 2
BeanDeserializerFactory bdf = new BeanDeserializerFactory(QueryBean.class, q);  // step 3
call.registerTypeMapping(QueryBean.class, q, bsf, bdf); //step 4

call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName(endpoint, "getReportContent"));
QueryBean bean = (QueryBean) call.invoke( new Object[] { "142", "5088721" });

在webroot中的ajax.js中:

<form method="post" action="#" name="setRoom">
                    <?php
                    echo '<select name = "dorm" id="dorm" >';
                    foreach ($row as $a) {

                        echo '<option>' . "$a" . '</option>';
                    }
                    echo '</select>';

                    ?>

</form>

在控制器中:

    $(document).ready(function () {
        $('#dorm').change(function () {
            var dorm = $('#dorm').val();
            if (dorm == '') {
                $('#roomm').html("choose dormitory!");
            }
            $.ajax({
            url: "addroom.ctp",
                    type: 'POST',
                    data: dorm,
                    success: function (data) {
                            alert("ok");
                    }
        });
    });

}

功能 class UesrmoreinfoesController extends AppController { public function addroom() { $gender = $this->request->Session()->read('Auth.User.gender'); $url = $this->params['url']; $dorm = $url['dorm']; $this->typeDormitory($gender); $this->numberRooms($dorm); } } 在第一个菜单列表中返回typeDormitory($gender)$row在第二个菜单列表中返回numberRooms($dorm)

正确显示第一个菜单数据。 如何从第一个下拉列表获取价值并发布ajax?

1 个答案:

答案 0 :(得分:0)

  1. 使用form helper
  2. 创建表单
  3. url: "addroom.ctp"更改为url: $("form").attr("action");
相关问题