我有一个类参考股票功能。我有一个包含php和jquery的文件。在PHP代码中,我检查库存中的产品是否等于零,将弹出确认框。问题是,当我点击取消按钮时,ajax仍然运行该类的功能并更新我的数据库,但我发现警报成功没有加载。我该怎么办?抱歉我的英语不好。
php文件:
<?php if($record['product_in_stock']<=0){?>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" language="javascript">
if(confirm('Product in stock is empty now, Do you want to continue?')){
alert('ok');
var order_id="12059";
$.ajax({
url:'components/com_virtuemart/classes/check_product_instock.php',
type:'post',
data: order_id,
success: function(){
alert(success);
}
});
return true;
}else{
alert('no');
return false;
}
</script>
<?php }?>
check_product_instock.php类
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
class checkStock{
private $order_id;
function getOrderId(){
if(isset($_POST['order_id'])){
$this->order_id=$_POST['order_id'];
}
}
function check(){
if(isset($_POST) && $_POST['order_id']>0){
$order_id=$_POST['order_id'];
$q = "SELECT product_id, product_quantity FROM jos_vm_order_item WHERE order_id='".$order_id."'";
$result=mysql_query($q);
while ($record=mysql_fetch_array($result)) {
$q = "UPDATE jos_vm_product
SET product_in_stock=product_in_stock - ".$record["product_quantity"].",
product_sales=product_sales + ".$record["product_quantity"]."
WHERE product_id=".$record["product_id"];
mysql_query($q);
}
}
}
}
$stock = new checkStock();
$stock->check();
答案 0 :(得分:0)
首先,我认为你在if条件中不要求返回true 和返回false 。
其次,你必须在ajax函数中传递参数,例如 data:&#39; order_id =&#39; + order_id,。只有这样,php文件(check_product_instock.php)才能读取POST值。