我是cakephp的新手。我正在尝试制作一个简单的ajax请求来修改屏幕的一部分。我在网上找到了几个例子,但我不能把它们混在一起! 当我单击 btnNewPhon 按钮时,我想将输入 txtPhon 的内容发送到控制器adminController。然后在视图中,将更新div dataToShow 以显示控制器发送的数据。
我差不多了,但我不知道如何将输入 phonID 和 phonTxt 的内容发送到控制器,我不知道如何获取控制器中的数据。这是我的代码。
查看 index.ctp :
<div id="dataToshow"></div>
<input id="phonID" type="text">
<input id="phonTxt" type="text">
<button id="btnNewPhon">New</button>
Ajax视图 ajax_response.ctp :
<?php echo $content; ?>
Javascript admin.js (包含在视图中):
$(function() {
$('#btnNewPhon').click(function() {
a = $("#txtPhon").val ;
$.ajax({
type:"POST",
datatype:'json',
cache: false,
data: <<< I don't know what to put here >>>,
url:"admin/addPhon",
update:"#dataToshow"
});
});
});
控制器 adminController.php :
public function addPhon() {
if ($this->request->is('ajax')) {
// Treatment of the new data here
//create current date in chosen format
$new_data = '##'.$this->request->param('phonID').'-'.$this->request->param('phonTxt').'##';
//set current date as content to show in view
$this->set('content', $new_data);
//render spacial view for ajax
$this->render('ajax_response', 'ajax');
}
}
感谢!!!
答案 0 :(得分:1)
我明白了。
1)在视图中,我需要在字段周围添加表单并为其设置名称属性,例如:
<form id="goNewPhon">
<input id="phonID" name="phonID" type="text">
<input id="phonTxt" name="phonTxt" type="text">
</form>
2)在js中,我将表格序列化:
data: $("#goNewPhon").serialize(),
3)在控制器中,我使用数据来获取传递的参数:
$this->request->data['phonTxt']
现在我工作了。