我对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检查发布的内容与数据库中的相同。
答案 0 :(得分:1)
不管怎样,你不应该通过客户往返价格。提高价格并将其显示给用户是一回事,但您应该从不接受来自用户的价格值。在实际计算成本时,始终从数据库中获取新的副本。
如果您想“修理”价格,以便如果商品长时间位于购物车中,并且您正在更改数据库中的价格,那么请将价格保留在用户的会话中。这是一个纯粹的服务器端数据结构,不能直接插入。
这会让你说“物品价格自你添加到购物车后已经改变了。接受新的更新价格或从购物车中移除?”。
答案 1 :(得分: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);
}