我在做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?