如何在 Opencart 中使用 Ajax?

Bla*_*rch 5 javascript php ajax jquery opencart

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

我使用Opencart版本1.5.5.1

我尝试构建ajax结果数据

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

就我而言,我使用comboboxfor 触发器ajax,所以我使用Onchangeincombobox然后将变量传递给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>
Run Code Online (Sandbox Code Playgroud)

看法 :

<?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>
Run Code Online (Sandbox Code Playgroud)

控制器:

(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
}
Run Code Online (Sandbox Code Playgroud)

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

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

bil*_*oah -1

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

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