如何让 Ajax 调用在此处显示输出? [关闭]

Posted

技术标签:

【中文标题】如何让 Ajax 调用在此处显示输出? [关闭]【英文标题】:How do I get the Ajax call to display the output here? [closed] 【发布时间】:2022-01-22 14:31:56 【问题描述】:

我被分配创建一个网页,用户在该网页中输入商品的价格、他们购买的数量,然后点击显示总成本(价格乘以数量)的按钮。我以前做过多个这样的作业,而且它们都工作得很好。但无论出于何种原因,当我单击按钮时,Ajax 代码都不会显示。这是我目前输入的代码。

    <html>
    <head>

    <title></title>

    <style type="text/css">

    body 
        color: white;
        font-family: arial;
        text-align: center;
        font-weight: bold;
        background-image: url("http://newton.ncc.edu/gansonj/ite254/img/stars.jpg");
    

    #contentwrap 
        width: 600px;
        min-height: 400px;
        margin: 20px auto 20px auto;
        border: 2px orange solid;
        border-radius: 15px;
        background-image: url("http://newton.ncc.edu/gansonj/ite254/img/nebula.jpg");
        background-repeat: no-repeat;
        background-position: right;
    

    #formwrap 
        background: lightyellow;
        color: darkblue;
        margin: 30px;
        font-size: 1em;
        padding: 10px;
        border-radius: 15px;
        border: 4px solid darkblue;
        opacity:0.8;
    

    #titlewrap 
        color: darkred;
        margin-bottom: 20px;
        font-size: 1.25em;
    

    #output 
        background: lightblue;
        color: green;
        padding: 10px;
        border-radius: 15px;
        border: 4px solid darkred;
        opacity: 1.0;
        font-size: 1.35em;
        height: 40px;
    

    input 
        font-weight: bold;
        font-size: 1em;
        padding: 2px 5px 2px 5px;
        border: 1px solid darkred;
    

    </style>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

    <script type="text/javascript">

    $("document").ready( function() 

        // assign event handler to the form
        $("#calcbutton").on( "click", function() 
    
            var quantity = $("#quantity").val();
    
            $.ajax(
        
                url: "CalcTotalAjax.php",
                type: "POST",
                data: "quantity=" + quantity,
                success: function(msg)
        
                    if(quantity < 100)
                
                        $("#output").hide().html("<div style='color:green;'>" + msg + "</div>").show("fade");
                
                    
                    else
                
                        $("#output").hide().html("<div style='color:purple;'>" + msg + "</div>").show("fade");
                
                    
                
        
            );
    
         ); // ends click handler

     );

    </script>

    </head>
    <body>

    <div id="contentwrap">

        <div id="formwrap">

            <div id="titlewrap">
                Calculate Total Cost<p />
                Purchase more than 100 items output is purple<br>
                Less then 100 items output is green
            </div>

            <form>
    
                Cost of item<br />
                <input type="text" size="20" id="cost">
                <p />

                Quantity<br />
                <input type="text" size="20" id="quantity">
                <p />

                <input type="button" value="Purchase" id="calcbutton">
        
            </form>
    
            <div id="resultswrap">
    
                <div id="output"></div>
    
            </div>

        </div> <!-- closes formwrap div -->

    </div> <!-- closes pagewrap div -->

    </body>
    </html>

这是 Ajax 文件

    <?php

    if( isset( $_POST['cost'] ) && isset( $_POST['quantity'] ) ) 

        echo "Total is $". $_POST['cost'] * $_POST['quantity'];

     // ends isset IF check

    ?>

有谁知道我可能做错了什么?

【问题讨论】:

$_POST['cost'] cost 的数据,所以isset($_POST['cost']) 为假 【参考方案1】:

在 PHP 中,您使用的是成本,但不是传递成本。当您同时检查成本和数量时,您需要在 Ajax Call 中发送这两个字段:

查看表格示例以获得更好的想法:

$("document").ready( function() 

    // assign event handler to the form
    $("#calcbutton").on( "click", function() 

        var quantity = $("#quantity").val();
        var cost = $("#cost").val();

        $.ajax(
    
            url: "CalcTotalAjax.php",
            type: "POST",
            data: "quantity":quantity,"cost":cost,
            success: function(msg)
    
                if(quantity < 100)
            
                    $("#output").hide().html("<div style='color:green;'>" + msg + "</div>").show("fade");
            
                
                else
            
                    $("#output").hide().html("<div style='color:purple;'>" + msg + "</div>").show("fade");
            
                
            
    
        );

     ); // ends click handler

 );

【讨论】:

以上是关于如何让 Ajax 调用在此处显示输出? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Wordpress 中调用 ajax

一键显示两个图像。 PHP, AJAX

如何让 Try except 输出更多细节?显示它到底发生在哪里? - Python [重复]

print函数各输出项之间用啥进行隔开

如何在 Cakephp 3 的 ajax 调用中定义 CSRF 令牌。此外,对于某些 ajax 请求,如何关闭 CSRF

AJAX调用在html div中显示api键和值