繁体   English   中英

jQuery AJAX POST返回的数据

[英]jQuery AJAX POST returned data

当用户单击不同的产品数量时,我正在尝试对html表进行简单的更新。 虽然对jQuery非常陌生,但我在ajax POST方法方面遇到了一些麻烦。

这是到目前为止我得到的:
测试table.html

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">

    function swapContent(count){
        $(".price-sidebar").html("Put animation here").show();

        $.ajax({
            type: "POST",
            url: "myphpscript.php",
            data: {countVar: count},
            success: function(data){

            }
        });
    }
</script>
</head>
<body>
    <a href="#" onClick="return false" onmousedown="javascript:swapContent('18');">18</a>
    <a href="#" onClick="return false" onmousedown="javascript:swapContent('48');">48</a>
    <a href="#" onClick="return false" onmousedown="javascript:swapContent('96');">96</a>

    <section class="price-sidebar span8" >                
        <h2>Price Comparison</h2>
        </br>
        <table class="price-data">
            <tr>
                <th class='store-row'><h4>Store</h4></th>
                <th class='price-row'><h4>Price</h4></th>
            </tr>

        <!--insert returned foreach data -->


        </table><!--end price-data-->
    </section><!--end price sidebar-->
</body>

myphpscript.php

require('C:\wamp\www\Single-Serve-Coffee\includes\database-connect.php'); 
$countVar = $_POST['countVar'];

    function PriceCompare($countVar){

        $STH = $DBH->query('SELECT ProductID, MerchantName, Price, PageURL
        FROM merchants
        WHERE ProductID=677 AND Count=' . $countVar . '
        ORDER BY Price');
        $result = $STH->fetchAll();

        foreach($result as $row){
            echo "<tr>";
            echo "<td class='store-row'><h5 property='seller'>" . $row['MerchantName'] . "</h5></td>";
            echo "<td class='price-row'><h5 property='price'>$" . $row['Price'] . "</h5></td>";            
            echo "<td><a property='url' target='_blank' href='" . $row['PageURL'] . "' class='btn btn-danger'>GET IT</a></td>";
            echo "</tr>";
            echo "</br>";
        }
       }
?>

我希望foreach循环的数据显示在html页面上,但是我不确定如何将其保存到那里。 我知道我缺少成功函数,但是我不知道如何编写jQuery来从我的PHP脚本中调用PriceCompare()函数。

如果您从php返回变量并在成功的javascript函数中迭代结果会更好。

修改php函数,不要迭代结果,仅返回fetchAll返回的内容。

在PriceCompare函数中,执行以下操作:

 $STH = $DBH->query('SELECT ProductID, MerchantName, Price, PageURL
        FROM merchants
        WHERE ProductID=677 AND Count=' . $countVar . '
        ORDER BY Price');
        $result = $STH->fetchAll();

return $result;

在php中,调用第3行中的函数,如下所示:

$ data = PriceCompare ($ countVar);

然后返回该json编码的对象。

echo json_encode ($ data);

最后在$中放入dataType:'json'。 像这样的ajax javascript:

$. ajax ({
             type: "POST",
             dataType: 'json',
             url: "myphpscript.php"
             data: {countVar: count},
             success: function (data) {
                  console.log(data);//iterate here the object
             }
         });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM