-1

我对 ajax 很陌生,但我可能会问对你们中的一些人来说可能很简单。

我正在寻找一种最好的方法来检查用户向我发布的checkdata.php内容是否确实price在数据库中。

我有一个很长的数据库,可以找到但我需要做这个验证。

产品

pid      name                  size     price  
1        chocolate              12        30.00

我有一个表格,我在我的表格中发布pid namesize

在我的 PDO 声明中,我正在这样做

SELECT pid, price, name, size from Product WHERE pid=:pid AND size=:size AND name=:name

这工作正常。

但是我想使用ajax来检查用户的内容是否与数据库中的内容相同,并且它等于数据库中的相同价格。

如果一切都不一样,那么它应该有一条警告消息说“不要乱码”。

我有一张很长的桌子。抱歉,我无法显示代码太长

在表中我有我从数据库中回显的名称

size是一个下拉列表

是一个隐藏的pid输入。

我目前有这个 jquery

$(document).ready(function(){
    $('#selected').hide();
    $('#button').click(function(){
        var pid = $('#pid').val();
        var size = $('#size').val();
        var Qty = $('#Qty').val();
        var price = '\u00A3' + parseInt($('#pricetag').text().replace(/^\D/, ''), 10) * Qty;
        var size = $('#size').val();
        if (!/^[1-9]\d?$/.test(Qty)){
            alert('Quantity should not be below 1 or null');
            return false; // don't continue
        } 
        else {
        $('#sprice').text(price);
        $('#ssize').text(size);
        $('#selected').slideDown();
        }
        $.ajax({
            url: 'checkdata.php',
            type: 'POST',
            data: { pid:pid, size:size, Qty:Qty},
            success: function(data)
            {

            }
        });
    });
});

<?php
session_start()

if(isset($_POST['pid']) && isset($_POST['size']) && isset($_POST['Qty']) && isset($_POST['name'])){   
    $pid = $_POST['pid'];
    $size = $_POST["size"];
    $qty = $_POST['Qty'];
    $name= $_POST['name'];

.
.
.

 somewhere in the php tag I have a statement to get the right price based on what data is getting posted
   SELECT pid, price, name, size from Product WHERE pid=:pid AND size=:size AND name=:name

?>

总结 在渲染页面之前,我如何使用 ajax 检查发布的内容是否与数据库中的内容相同。

4

2 回答 2

1

无论如何,您不应该通过客户来回调整价格。提高价格并将其显示给用户是一回事,但您永远不应该接受来自用户的价格值。在实际计算成本时,请始终从数据库中获取新副本。

如果您想“固定”价格,以便商品在购物车中的时间较长,并且您正在更改数据库中的价格,则将价格保留在用户会话中。那是一个纯粹的服务器端数据结构,不能直接干预。

这会让您说“自从您将商品添加到购物车后,商品价格发生了变化。接受新的更新价格还是从购物车中删除?”。

于 2013-07-25T14:47:51.357 回答
0

我不确定你在问什么。

假设如果您正在寻找验证用户折扣券等,您可能需要检查 checkdata.php 中的用户会话。如

$member_coupon=$_SESSION['MEMBER_COUPON'];

SELECT pid, name, size from Product where pid=:pid and coupon_id=$member_coupon

然后

if(result){echo 'SUCCESS';}
else{ echo 'dont mess around';} 

和ajax可以使用

success: function(results) { 
alert(results);
}
于 2013-07-25T14:57:05.320 回答