$ .ajax调用返回错误:每次[求助:<form>标记]

时间:2016-12-05 17:26:38

标签: php jquery json ajax

我再次检查并检查,但由于我已经进入jQuery和JSON几天,我看不到任何错误(但浏览器的控制台确实如此)。 AJAX调用返回error:函数,在控制台日志Mmm..try again中打印。

整个剧本的目标是:

  1. 从不同的HTML元素中收集产品的codeIDtitleqta(数量)(这可行)
  2. 将收集的信息传递给PHP脚本(使用AJAX),该脚本应该:

    a)在function addToCartCookie()创建一个包含检索到的信息的数组$array并将其保存在名为addedToCart JSON格式的Cookie中。

    b)在function checkAddToCartCookie()中执行简单检查是否设置了cookie。如果是,则必须将字符串&#34; Cookie SET&#34;发送回HTML页面,否则&#34; Cookie NOT SET&#34;。

  3. 正如我所说,问题出在$.ajax来电,因为它返回error:,但我不知道为什么。有没有更专家的任何线索?

    您可以测试脚本here

    这里有代码:

    HTML部分:

    <div id="pC_prodImg">
      </div>
    <div id="pC_prodInfo">
        <p id="pC_prodInfoA">Questo è il titolo</p>
        <p class="pC_prodInfoB"></p>
        <p id="pC_prodInfoC"></p>
        <form id="pC_prodInfoForm">
          <select name="pC_prodInfoSelect" id="pC_prodInfoSelect">
            <option value="FC120P1">1 mq² (€ 20.50)</option>      
            <option value="FC120P5">5 mq² (€ 40.50)</option>      
          </select>
          <input type="number" id="pC_prodInfoQta" name="pC_prodInfoQta" maxlength="2" min="1" max="99" required="required" placeholder="Q.t&agrave;"/>
          <input type="submit" value="Aggiungi al carrello" id="pC_prodInfoSubmit"  />
        </form>
      </div>
    

    jQuery的:

    <script>
    $(document).ready(function() {
        $("#pC_prodInfoSubmit").on("click", function(){
    
            var title = $("#pC_prodInfoA").text();
            var codeID = $("#pC_prodInfoSelect").val();
            var qta = $("#pC_prodInfoQta").val();
            if($.isEmptyObject(qta)) {
                alert("Imposta una quantità numerica!");
            }
    
            else {
                $("#pC_prodImg").html(title + ' | ' + codeID + ' | ' + qta);
    
                $.ajax({
                    type: "POST",
                    url: "addtocart.php",
                    data: { title:title, codeID:codeID, qta:qta },
                    dataType: "json",
                    success: function(data) {
                        if(data == "Cookie SET") {
                            console.log(data);
                        }
                        else {
                            console.log("Error 1");
                        }
                    },
                    error: function() {
                        console.log("Mmm..try again");
                    }
                });
            }
        });
    });
    </script>
    

    PHP脚本:

    <?php
    header('Content-Type: application/json');
    
    $title = $_POST["title"];
    $codeID = $_POST["codeID"];
    $qta = $_POST["qta"];
    
    function addToCartCookie($title, $codeID, $qta) {
        $array = array("title" => $title,
                       "codeID" => $codeID,
                       "qta" => $qta);
        $arrayJSON = json_encode($array);
        setcookie("addedToCart", $arrayJSON, time() + (86400 * 30), "/");
    }
    
    function checkAddToCartCookie() {
        $addedToCart = json_decode($_COOKIE["addedToCart"], true);
        if (empty($addedToCart)) {
            $response = "Cookie NOT SET";
            echo json_encode($response);
        }
        else {
            $response = "Cookie SET";
            echo json_encode($response);
        }
    }
    
    addToCartCookie($title, $codeID, $qta);
    checkAddToCartCookie();
    

    [编辑] :问题是由<form>标记造成的:我评论了它,整个脚本都有效,其他没有。在这种情况下,这不是问题,但如果有人知道原因可以请向我解释一下吗?谢谢!

0 个答案:

没有答案