使用ajax的codeigniter中的购物车

时间:2016-03-07 10:26:04

标签: ajax codeigniter

嗨,我是ajax的新手,有问题。我正在尝试使用ajax制作购物车。我不知道我的代码有什么问题请帮帮我。 当我点击添加按钮时,会发出警告“没有成功”#39;没有任何事情发生,我无法将商品添加到购物车。 谢谢你的帮助。

这是我的观点

server {
    listen      80;
    server_name www.my-app.com;
    return 301  $http_x_forwarded_proto://my-app.com$request_uri;
}

这是我的控制器

<html>
<head>
    <title>Codeigniter cart class</title>
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <link href='http://fonts.googleapis.com/css?family=Raleway:500,600,700' rel='stylesheet' type='text/css'>
      <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>css/style.css">

    <script type="text/javascript">
        $(document).ready(function() {
        $("#myform").submit(function(event) {
        event.preventDefault();

        var insert_data= $(this).serializeArray();
        $.ajax({
        url:  "<?php echo base_url(); ?>" + "index.php/shopping2/add",  
        dataType: 'json',
        //type: "POST",
        data: insert_data,

            success:function(response) {

//if (response){
   //var res = JSON.parse(response);
    var res = response;
    if(res.status == 200){

        window.location.href="http://127.0.0.1/codeigniter_cart2/index.php/shopping2";
    }else{

        alert(res.msg);
    }
//}
//else{ 
   // alert('sorry');
//}
                }

});
        });
        });
    </script>
</head>
<body>


  <div id='content'>
    <div class="row"> 

    <div class="col-sm-5">
        <h2 align="center">Items</h2>
        <?php


        ?>

                 <table id="table" border="0" cellpadding="5px" cellspacing="1px">

        <?php
        foreach ($products as $product) {
            $id = $product['serial'];
            $name = $product['name'];

            $price = $product['price'];
            ?>


                  <tr class="well">
                 <td style="padding-left:15px;"><?php echo $name; ?></td>

                    <td>
                        Rs. <?php echo $price; ?></td>
                    <?php
                    ?>

                    <?php
                    echo form_open('',array('id' => 'myform'));
                    echo form_hidden('id', $id);
                    echo form_hidden('name', $name);
                    echo form_hidden('price', $price);
                    ?> <!--</div>--> 

                    <?php
                    $btn = array(
                        'class' => 'fg-button teal',
                        'value' => 'Add',
                        'name' => 'action',
                        'id' => 'add_button'
                    );
                    ?>
                   <td>
                    <?php
                    // Submit Button.
                    echo form_submit($btn);
                    echo form_close();
                    ?>
                </td>
                </tr>
                <?php } ?>
                </table>

                </div>

    <div class="col-sm-7">
   <!-- <div id="cart" >-->

            <h2 align="center">Items on  Cart</h2>


            <div> 
        <?php  $cart_check = $this->cart->contents();


         if(empty($cart_check)) {
         echo 'To add products to your shopping cart click on "Add" Button'; 
         }  ?> </div>

            <table id="table" border="0" cellpadding="5px" cellspacing="1px">
              <?php
              // All values of cart store in "$cart". 
              if ($cart = $this->cart->contents()): ?>
                <div id="addcart">
                <tr id= "main_heading" class="well">

                    <td style="padding-left:15px;"><?>Name</td>
                    <td>Price(Rs)</td>
                    <td>Qty</td>
                    <td>Amount</td>
                    <td>Remove</td>
                </tr>
                <?php
                 // Create form and send all values in "shopping/update_cart" function.
                echo form_open('shopping2/update_cart');
                $grand_total = 0;
                $i = 1;

                foreach ($cart as $item):


                    echo form_hidden('cart[' . $item['id'] . '][id]', $item['id']);
                    echo form_hidden('cart[' . $item['id'] . '][rowid]', $item['rowid']);
                    echo form_hidden('cart[' . $item['id'] . '][name]', $item['name']);
                    echo form_hidden('cart[' . $item['id'] . '][price]', $item['price']);
                    echo form_hidden('cart[' . $item['id'] . '][qty]', $item['qty']);
                    ?>
                    <tr class="well" id="addcart">

                        <td style="padding-left:15px;">
                  <?php echo $item['name']; ?>
                        </td>
                        <td>
                            <?php echo number_format($item['price'], 2); ?>
                        </td>
                        <td>
                        <?php echo form_input('cart[' . $item['id'] . '][qty]', $item['qty'], ' type="number" max="99" min="1" value="1" style="width:50px;"'); ?>
                        </td>
                    <?php $grand_total = $grand_total + $item['subtotal']; ?>
                        <td>
                            Rs <?php echo number_format($item['subtotal'], 2) ?>
                        </td>
                        <td>

                        <?php 
                        // cancle image.
                        $path = "<img src='http://127.0.0.1/codeigniter_cart2/images/cart_cross.jpg' width='25px' height='20px'>";
                        echo anchor('shopping/remove/' . $item['rowid'], $path); ?>
                        </td>
                 <?php endforeach; ?>
                </tr>

                <tr>
                    <td style="padding-left:30px;"><b>Order Total: Rs <?php 

                    //Grand Total.
                    echo number_format($grand_total, 2); ?></b></td>


                    <td colspan="5" align="right"><input type="button" class ='fg-button teal' value="Clear cart" onclick="window.location = 'shopping2/remove'">

                        <?php //submit button. ?>
                        <input type="submit" class ='fg-button teal' value="Update Cart">
                        <?php echo form_close(); ?>


                        </td>
                </tr></div>
<?php endif; ?>
        </table>


    </div>


   <!-- <div id="products_e" align="center">-->

            <!--</div>-->



   <!-- </div>-->
  </div>
  </div>
</body>
</html>

类Shopping2扩展了CI_Controller {

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

请帮助我如何使用ajax在购物车中添加商品。

1 个答案:

答案 0 :(得分:0)

由于您设法得到回复,问题应该出在您的模型或数据插入中。

很少有建议:

  1. 还建议您使用$ .post()而不是$ .ajax()。
  2. "<?php echo base_url(); ?>" + "index.php/shopping2/add"可以更改为"<?php echo site_url('shopping2/add"'); ?>"
  3. 使用内置的Codeignter输出类输出您的JSON。见这里:https://www.codeigniter.com/userguide3/libraries/output.html