-1

私は ajax にかなり慣れていませんが、私が尋ねるかもしれないことは、一部の人にとっては簡単かもしれません。

checkdata.phpユーザーが自分に投稿しているものがデータベース内のものであることを確認する最良の方法を探していpriceます。

非常に長いデータベースが見つかりましたが、この検証を行う必要があります。

製品

pid      name                  size     price  
1        chocolate              12        30.00

私はフォームを持っていて、自分のフォームで投稿pid nameしていますsize

私の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

とにかく、クライアントを介して価格を往復するべきではありません。価格を引き上げてユーザーに表示することは 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 に答える