-1

我想创建一个简单的 jQuery/Ajax/CakePHP 脚本。

我有一个带有按钮的列表框。当我从列表中选择某些内容并单击按钮时,我想显示一条表示剩余购买的消息。

我阅读了很多关于使用 CakePHP 的 Ajax 教程,我尝试做一些,但它们并没有满足我的需求。

请问,具体操作步骤是什么?我是一个初出茅庐的人。

4

1 回答 1

0

我假设有一个控制器并定义一个方法。在这里,我创建了一个方法名称,如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 文件中,我只是给出一个简单的代码,你应该根据你的要求进行修改。

于 2015-06-08T12:27:19.007 回答