我想创建一个简单的 jQuery/Ajax/CakePHP 脚本。
我有一个带有按钮的列表框。当我从列表中选择某些内容并单击按钮时,我想显示一条表示剩余购买的消息。
我阅读了很多关于使用 CakePHP 的 Ajax 教程,我尝试做一些,但它们并没有满足我的需求。
请问,具体操作步骤是什么?我是一个初出茅庐的人。
我假设有一个控制器并定义一个方法。在这里,我创建了一个方法名称,如test
我的TestsController.php
. 看到那个
class TestsController extends AppController {
public $uses = array();
public $helpers = array('Form', 'Html', 'Js', 'Time');
public function test() {
if( $this->request->is('ajax') ) {
// selected item's id
echo $value = $this->request->data('value_to_send');
// put your logic
echo $this->Session->setFlash(__('Your post has been saved.'));
die();
}
}
}
然后我 test.ctp
在 view/tests 目录下添加了文件。就像
$array_list = array(
'1' => 'Item 1',
'2' => 'Item 2',
'3' => 'Item 3',
'4' => 'Item 4',
'5' => 'Item 5',
);
echo $this->Form->create();
echo $this->Form->input('list_box_id', array(
'options'=> $array_list,
'id' => 'list_box_id',
));
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
$(function() {
$('#list_box_id').change(function() {
var selected_list_box_id = $(this).val();
var requestUrl = '<?php echo Router::url(array('controller' => 'tests', 'action' => 'test')); ?>';
$.ajax({
type:"POST",
data:{value_to_send:selected_list_box_id},
url: requestUrl,
success : function(data) {
alert(data);// will alert "ok"
},
error : function() {
alert("false");
}
});
});
});
</script>
这里我添加了添加到这个页面的 jQuery 代码,你可以存储在一个单独的 js 文件中,我只是给出一个简单的代码,你应该根据你的要求进行修改。