如何在Opencart中使用Ajax

How using Ajax In Opencart?

本文关键字:Ajax Opencart      更新时间:2023-09-26

我在ajax的经验很少,所以我只是尽力而为。

我使用Opencart版本1.5.5.1

我尝试为结果数据构建ajax

例如(select title,description,date from menu where menu_id ='1') or (select *).

就我而言,我使用 combobox 作为触发器ajax,所以我在 combobox 中使用 Onchange 然后将变量传递给 Controller .

阿贾克斯 :

<script type="text/javascript" src="view/javascript/jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('#id_menu').change(function() {
            if ($(this).val != 0) {
                var menu_id = $(this).val();          // store to variable for passing
                $.ajax({
                url: 'index.php?route=menu/all_menu/function_menu',
                type: 'POST',
                dataType: 'html',
                data: {
                menu_id: menu_id
            },
            success: function(response) {
                $("#all-menu").html(response);
            }
          });
        }
      }).change();
    });
</script>

视图:

<?php echo $header; ?>
<div id="content">
    <div class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb){?>
            <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
        <?php } ?>
    </div>
    <?php if ($error_warning) {?>
        <div class="warning"><?php echo $error_warning; ?></div>
    <?php } ?>
    <?php if ($success) {?>
        <div class="success"><?php echo $success; ?></div>
    <?php } ?>
    <div class="box">
        <div class="heading">
            <h1><img src="view/image/product.png" alt="" /> <?php echo $heading_title; ?></h1>
        </div>
        <div class="content">
            <form action="<?php echo $action; ?>" method="POST" enctype="multipart/form-data" id="form">
                <table class="form">
                    <tr>
                        <td><?php echo $entry_menu; ?></td>
                        <td>
                            <select name="id_menu" id="id_menu">
                                <option value="" selected='selected'> Menu </option>
                                <option value="1">1</option>
                                <option value="2">2</option>
                                <option value="3">3</option>
                                <option value="4">4</option>
                                <option value="5">5</option>
                                <option value="6">6</option>
                                <option value="7">7</option>    
                            </select>
                            <?php if ($error['menu'])?>
                                <span class="error"><?php echo $error['menu']; ?></span>
                        </td>           
                    </tr>
                </table>
                <div id="all-menu" align="center">
                </div>
            </form>
        </div>
    </div>
</div>

控制器:

(class ControllerMenuAllMenu extends Controller {)
public function function_menu(){
    $this->language->load('menu/all_menu'); 
    $this->load->model('menu/all_menu');
    echo "A";exit;         //Should be result A
}

当我更改组合框时,它会再次显示我的主页(后端),div all-menu

像这样 http://s1064.photobucket.com/user/blackarch01/media/Untitled_zpsbkmv1vlk.jpg.html?sort=3&o=0

如果要调用管理页面,则需要在 ajax url 中包含会话令牌:

url: 'index.php?route=menu/all_menu/function_menu&token=<?php echo $this->session->data["token"]; ?>',