jQuery ajax调用不能在firefox

时间:2017-06-14 16:31:05

标签: javascript php jquery ajax firefox

[已解决] 我必须将按钮标记更改为任何其他标记,例如< a>标签来调用该函数。如:

<a class="btn btn-success btn-block" id="bagadd" onclick="return all_check('add', '<?php echo $product_id;?>');"><i class="fa fa-cart-plus"></i> Add To Bag</a>

[问题] 在我的项目中,我使用Ajax调用将数据从JavaScript发送到PHP脚本。我试图在Stackoverflow上寻找答案,但没有成功,我提出了一个问题。

此代码在我的Chrome浏览器上正常运行,但在我在Firefox中试用时失败了。

产品detail.php

function all_check(action, productid){
          var product_id = productid;

          var serial = document.getElementById("showserial").value;
          var size = document.getElementById("showsize").value;
          var qty = document.getElementById("quantity").value;

          var queryString = "";
          if(action != "") {
              switch(action) {
                  case "add":
                      queryString = 'action='+action+'&code='+ product_id+'&serial='+serial+'&quantity='+qty+'&size='+size;
                      alert(queryString);
                      break;
                  case "empty":
                      queryString = 'action='+action;
                      break;
              }
          }
          $.ajax({
              url: "ajax_action.php",
              type: "POST",
              dataType:"json", 
              data: queryString
          }).done(function(data){ //on Ajax success
              alert("success");
              $("#cartcount").html(data.items); //total items in cart-info element
              console.log("bla bla bla");
          });
      }

这是调用此功能的按钮:

<button class="btn btn-success btn-block" id="bagadd" onclick="return all_check('add', '<?php echo $product_id;?>');"> Add To Bag</button>

单击按钮,将调用all_check函数。但是在Firefox上,ajax调用不起作用。我通过使用alert和console在done函数中检查它。我反复清理缓存。但它没有用。

任何人请帮助我解决这个问题。

编辑1 我的firefox版本是54.0(32位)。 我正在使用Google CDN for jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

编辑2

从firefox完成渲染的html:

<html lang="en">
  <head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<!-- Bootstrap -->
<link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/bootstrap/css/bootstrap-select.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link rel="stylesheet" href="assets/css/style.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>


  <script type="text/javascript">
      function all_check(action, productid){ // from 262 line
          var product_id = productid;
          if(document.getElementById("showsize").value==""){
             alert("Please Select size");
              return false;
          }
          else if(document.getElementById("quantity").value==""){
                  alert("Please Select Quantity");
                  document.getElementById("quantity").focus();
                  return false;
          }

          else{
              var qtyid = +document.getElementById("quantity").value;
              typeof(qtyid);
              var available = +document.getElementById("showavailable").value;
              typeof(available);
              if(qtyid > available ){
                      alert("Sorry, Available Quantity is "+ available);
                      return false;
                }
              }

          console.log("button clicked");
          var serial = document.getElementById("showserial").value;
          var size = document.getElementById("showsize").value;
          var qty = document.getElementById("quantity").value;

          var queryString = "";
          if(action != "") {
              switch(action) {
                  case "add":
                      queryString = 'action='+action+'&code='+ product_id+'&serial='+serial+'&quantity='+qty+'&size='+size;
                      alert(queryString);
                      break;

                  case "empty":
                      queryString = 'action='+action;
                      break;
              }
          }
          $.ajax({ //make ajax request to cart_process.php
              url: "ajax_action.php",
              type: "POST",
              dataType:"json", //expect json value from server
              data: queryString
          }).done(function(data){ //on Ajax success
              alert("success");
              $("#cartcount").html(data.items); 
              console.log("bla bla bla");

          });

      }
      function get_availble(serial)
      {
          document.getElementById('showserial').value = serial;
          var size_n_available = document.getElementById('product_size').value;
          document.getElementById('showsize').value = size_n_available.substring(0,2) ; 
          document.getElementById('showavailable').value = size_n_available.substring(2) ; 
          alert(document.getElementById('showavailable').value);
      }
  </script>
 </head>
 <body>
    <header>
    <div class="container">
        <div class="row">
            <div class="col-md-2 col-sm-3 hidden-xs">
                <a href="index.php"><img src="assets/images/logo.png" class="img-responsive" alt=""></a>
            </div>
            <div class="col-md-7 col-sm-6">
                <div class="row">
                    <div class="col-md-6 col-md-offset-3">
                        <div id="custom-search-input">
                            <div class="input-group col-md-12">
                                <input type="text" class="form-control input-sm" placeholder="Search" />
                                <span class="input-group-btn">
                                    <button class="btn btn-info btn-sm" type="button">
                                        <i class="glyphicon glyphicon-search"></i>
                                    </button>
                                </span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</header>

<nav class="navbar navbar-default navbar-static">
    <div class="container">
        <div class="row">
            <div class="navbar-header">
                <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".js-navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="index.php"><img src="assets/images/logo.png" class="img-responsive" alt="" width="75"></a>
            </div>

            <div class="collapse navbar-collapse js-navbar-collapse">
                <ul class="nav navbar-nav">
                    <li class="active"><a href="index.php"><i class="fa fa-home"></i></a></li>
                     <li class="dropdown">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Category <span class="caret"></span></a>
                              <ul class="dropdown-menu dropdown-cart dropdown-content" role="menu">
                                                                                   <li class=""><a href="product.php?id=01">Tote bags</a></li>
                                                                                        <li class=""><a href="product.php?id=02">Mugs</a></li>
                                                                                        <li class=""><a href="product.php?id=03">T-shirts</a></li>
                                                                                        <li class=""><a href="product.php?id=04">Throw Pillow</a></li>
                                                                                        <li class=""><a href="product.php?id=05">Notebooks</a></li>
                                                                                        <li class=""><a href="product.php?id=06">Art print</a></li>
                                                                          </ul>

                    </li>
                </ul>

                <ul class="nav navbar-nav navbar-right">
                    <li><a href="aboutus.php">About Us</a></li>
                    <li><a href="#">Help</a></li>
                    <li class="dropdown">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span class="glyphicon glyphicon-shopping-cart"></span>
                           Items <span id="cartcount">
                                                          </span>
                         <span class="caret"></span></a>
                        <div id="shopping_cart_results"></div>
                    </li>

                </ul>
            </div>
        </div>
    </div>
</nav>
<div class="container">
<div class="row">
        <div class="col-md-8">
            <div class="row top-left-message" style="background:#fff">
            </div>
        </div>

        <div class="col-md-1 col-md-offset-2 collapse navbar-collapse js-navbar-collapse">
            <a href="artist.php">Artist</a>
        </div>
        <div class="col-md-1  collapse navbar-collapse js-navbar-collapse">
            <a href="home_junctions.php">Home Junction</a>
        </div>

        </div>
    </div>
</div>    
<div class="container">


    <div class="row" style="margin-top:15px;">
        <div class="col-md-5 col-sm-6">

            <div id="view-thumb">
                <img id="theImg" class="my-foto img-responsive" src="productimage/bigtea-baggin-mugs.jpg" data-large="productimage/bigtea-baggin-mugs.jpg" title="">
            </div>
        </div>

        <div class="col-md-7 col-sm-6">
             <div class="productHeader container-fluid">
                <div class="row">
                    <div class="col-sm-8">
                        <h2>Tea baggin Mug</h2>

                    </div>
                    <div class="col-sm-4">

          <p style="padding-top: 26px; padding-right:10px; font-family: Helvetica; color:#999; font-size:17px;" class="pull-right">Tk 300</p>                                    

                        <div class="clearfix"></div>

                    </div>
                </div>
            </div>                    

            <div class="row">
                <div class="col-sm-6 col-sm-offset-3">
                    <form action="" method="post">
                        <div class="form-group">
                            <select id="product_size" name="product_size" class="form-control" onchange="get_availble(258)" required>
                                <option value="-1">Select Size</option>
                                                                                <option value="125">11 oz</option>
                                                                                <option value="135">15 oz</option>

                            </select>
                            <input class="form-control" id="showsize" name="showsize" placeholder="show size" type="text">
                            <input class="form-control" id="showavailable" name="showavailable" placeholder="show Quantity" type="text">
                            <input class="form-control" id="showserial" name="showserial" placeholder="show serial" type="text">
                        </div>
                        <div class="form-group">

                            <input class="form-control" id="quantity" name="quantity" placeholder="Enter Quantity" type="text">
                        </div>

                        <button class="btn btn-success btn-block" id="bagadd" onclick="return all_check('add', '06020010');"><i class="fa fa-cart-plus"></i> Add To Bag</button>

                        <input class="btn btn-success btn-block" id="forsubmit" type="hidden">

                    </form>
                </div>
            </div>

        </div>


        <div class="row" style="margin-bottom:10px;">
                <div class="col-md-12">
                    <div class="title">
                        <h2>Recently viewed</h2>
                    </div>
                    <div class="multiple-items recent_view">
                        <div class="col-md-2 col-sm-6 col-xs-12">
                            <a href="#"><img src="assets/images/product/because-sloths-1yv-mugs.jpg" class="img-responsive"></a>
                        </div>
                        <div class="col-md-2 col-sm-6 col-xs-12">
                            <a href="#"><img src="assets/images/product/good-morning-i-see-the-assassins-have-failed-mugs.jpg" class="img-responsive"></a>
                        </div>

                    </div>
                </div>
        </div>
    </div>
</div>
  <script src="assets/bootstrap/js/bootstrap.min.js"></script>
  <script src="assets/bootstrap/js/bootstrap-select.js"></script>
  <script src="assets/js/zoomsl-3.0.min.js"></script>
  <script type="text/javascript" src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
  <script type="text/javascript" src="slick/slick.min.js"></script>
  <script src="assets/js/singleCartDelete.js"></script>


  <script>
    $(document).ready(function(){
        $('.multiple-items').slick({
            infinite: true,
            slidesToShow: 6,
            slidesToScroll: 1,
            autoplay: true,

        });

        $('#thumb-group a').on({
            'click': function(){

                var imgSrc = $(this).attr('data-src');

                $('#theImg').attr('src',imgSrc);
                $('#theImg').attr('data-large',imgSrc);

            }
        });
        if(!$.fn.imagezoomsl){

            $('.msg').show();
            return;
        }
         else $('.msg').hide();

        $('.my-foto').imagezoomsl({ 

             zoomrange: [1, 12],
             zoomstart: 4,
             innerzoom: true,
             magnifierborder: "none"    
        });  
    });

</script> <script type="text/javascript" src="assets/js/plugin.js"></script>

这是 ajax_action.php 文件:

<?php
session_start();
include("connection.php");
if(!empty($_POST["action"])) {
switch($_POST["action"]) {
    case "add":
        if(!empty($_POST["quantity"])) {
            $productid = mysqli_fetch_row(mysqli_query($con, "SELECT ProductID,ProductName,Price,SerialNo  FROM product_info where SerialNo='".$_POST["serial"]."'"));
            $product_image = mysqli_fetch_row(mysqli_query($con, "SELECT ImageID, ProductID,BigImage,MidImage,SmallImage,SerialNo FROM product_image
                               WHERE ProductID='".$productid[0]."' AND SerialNo='".$_POST["serial"]."'"));
            $idx = $_POST["serial"].$_POST["size"];

            $itemArray = array($idx=>array(
                                              'name'=>$productid[1],
                                              'code'=>$_POST["serial"],
                                              'image'=>$product_image[4],
                                              'quantity'=>$_POST["quantity"],
                                              'price'=>$productid[2],
                                              'size'=>$_POST["size"]
                                          )
                              );

            if(!empty($_SESSION["cart_item"])) {
                    $_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
            } else {
                $_SESSION["cart_item"] = $itemArray;
            }
        }

    break;

    case "empty":
        unset($_SESSION["cart_item"]);
    break;
}
$total_items = count($_SESSION["cart_item"]); //count total items
die(json_encode(array('items'=>$total_items))); //output json

}

&GT;

0 个答案:

没有答案