Php 使用Jquery与数据库进行验证
我对Php 使用Jquery与数据库进行验证,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我对jquery相当陌生,但我想知道它们是否是一种使用下面的jquery运行mysql的方法 在我的cart.php中,我有一个查询,检查数据库中是否有发布的内容,如果没有,则不会添加该项目 在my view.php页面中,下面的jquery和隐藏div位于其中。当你点击添加按钮时,隐藏的div会显示你添加的内容 <button type="submit" name="submit" class="show_hide" id="button" name="submit">Add<
jquery
相当陌生,但我想知道它们是否是一种使用下面的jquery运行mysql
的方法
在我的cart.php
中,我有一个查询
,检查数据库中是否有发布的内容,如果没有,则不会添加该项目
在my view.php页面中,下面的jquery
和隐藏div
位于其中。当你点击添加按钮时,隐藏的div会显示你添加的内容
<button type="submit" name="submit" class="show_hide" id="button" name="submit">Add</button>
隐藏div
<div id="selected">
<table class="tableclass">
<tr>
<td>Price:</td>
<td id='sprice'></td>
</tr>
<tr>
<td>Category:</td>
<td id='scategory'></td>
</tr>
<tr>
<td>Length:</td>
<td id='slength'></td>
</tr>
</table>
</div>
我用它来检查数据库中是否存在发布的内容。这与我希望在jquery中运行的查询大致相同,以检查var
是否存在,如果不存在,url:./cart.php
不应运行
更新以显示my cart.php代码
if(isset($_POST['pid']) && isset($_POST['length']) && isset($_POST['Qty']) && isset($_POST['Category'])){
$pid = $_POST['pid'];
$length = $_POST['length'];
$qty = $_POST['Qty'];
$Category = $_POST['Category'];;
$wasFound = false;
dbconnect();
$statement = $conn->prepare("SELECT * FROM Category ct, Itemised_Product ip, Product pd
WHERE ct.CatID = ? AND ip.ItemID = ? AND pd.Sef = ?
");
$statement->execute(array($Category, $length, $pid));
if (!$statement->fetch()) {
exit();
}
$i = 0;
// If the cart session variable is not set or cart array is empty
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
// RUN IF THE CART IS EMPTY OR NOT SET
$_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
} else {
// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
foreach ($_SESSION["cart_array"]as $array_key=>$each_item) {
if ($each_item['item_id'] == $pid && $each_item['length'] == $length && $each_item['Category'] == $Category) {
$_SESSION["cart_array"][$array_key]['quantity']+=$qty;
$wasFound = true;
}
}
if ($wasFound == false) {
array_push($_SESSION["cart_array"], array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
}
}
header('Location: '.fetchinline($bpages).$currentFile);
exit();
}
if(isset($_POST['pid'])和&isset($_POST['length'])和&isset($_POST['Qty'])和&isset($_POST['Category']){
$pid=$_POST['pid'];
$length=$_POST['length'];
$qty=$_POST['qty'];
$Category=$_POST['Category'];;
$wasFound=false;
dbconnect();
$statement=$conn->prepare(“从类别ct、分项产品ip、产品pd中选择*)
其中ct.CatID=?和ip.ItemID=?以及pd.Sef=?
");
$statement->execute(数组($Category,$length,$pid));
如果(!$statement->fetch()){
退出();
}
$i=0;
//如果未设置购物车会话变量或购物车数组为空
如果(!isset($_会话[“cart_数组])|计数($_会话[“cart_数组])<1){
//如果购物车为空或未设置,则运行
$\会话[“购物车数组”]=数组(0=>数组(“项目id=>$pid,“长度”=>$length,“类别”=>$Category,“数量”=>$qty));
}否则{
//如果购物车中至少有一个项目,则运行
foreach($_会话[“购物车数组”]作为$array\u key=>$each\u项){
如果($each_item['item_id']=$pid&&$each_item['length']=$length&&$each_item['Category']=$Category){
$\u会话[“购物车数组”][$array\u key]['quantity']+=$quantity;
$wasFound=true;
}
}
如果($wasFound==false){
数组推送($\会话[“购物车数组”],数组(“项目id=>$pid,“长度”=>$length,“类别”=>$Category,“数量”=>$qty));
}
}
标头('Location:'.fetchinline($bpages)。$currentFile);
退出();
}
我的问题
在购物车页面中,我有一个查询,它检查用户是否检查了发布的内容。我想对上面的jquery执行同样的操作,如果用户拥有
我想停止,我想停止显示隐藏的div
我希望我已经解释给你听了。谢谢您抽出时间。我不确定是否完全理解您的问题。是:
按“添加”按钮
检查产品是否存在的AJAX请求
如果是,则显示隐藏的div
或
按“添加”按钮
用更多信息显示隐藏字段
将产品添加到购物车
无论如何,在上述两种情况下,您都可以对服务器执行AJAX请求,并检查产品是否存在。如果您查看$.ajax success函数,那么“数据”实际上是来自服务器的响应,您可以包含任何需要的内容,并使用javascript/jquery处理数据。Js
$(document).ready(function(){
$('#selected').hide();
$('#button').click(function(){
var pid = $('#pid').val();
var length = $('#length option:selected').text();
var Category = $('#Category').val();
var cat = $('#Category option:selected').text();
var Qty = $('#Qty').val();
var qty = parseInt($('#Qty').val());
var price = parseFloat($('#pricetag').text().replace(/^\D/, ''), 10) * qty;
price = '\u00A3' + price.toFixed(2);
var category = $('#Category').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);
$('#scategory').text(cat);
$('#slength').text(length);
$('#selected').slideDown();
}
$.ajax({
url: '../cart.php',
type: 'POST',
data: { pid:pid,
length:length,
Qty:Qty,
Category:Category },
dataType:json,
success: function(data)
{
if(data.response=='failed')
{
alert('error');
}
else if(data.response=='success')
{
alert('success');
//location.reload();
}
else if(data.response == 'already_in_database')
{
alert('Already exists in database');
}
},
error: function()
{
alert('error');
}
});
});
});
Cart.php
if (isset($_POST['pid']) && isset($_POST['length']) && isset($_POST['Qty']) && isset($_POST['Category']))
{
$pid = $_POST['pid'];
$length = $_POST['length'];
$qty = $_POST['Qty'];
$Category = $_POST['Category'];
$wasFound = false;
dbconnect();
$statement = $conn->prepare("SELECT * FROM Category ct, Itemised_Product ip, Product pd
WHERE ct.CatID = ? AND ip.ItemID = ? AND pd.Sef = ?
");
$statement->execute(array($Category, $length, $pid));
$result=array();
if (!$statement->fetch())
{
$result['response'] = 'already_in_database';
echo jsone_encode($result);
die();
}
$i = 0;
// If the cart session variable is not set or cart array is empty
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)
{
// RUN IF THE CART IS EMPTY OR NOT SET
$_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
}
else
{
// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
foreach ($_SESSION["cart_array"]as $array_key => $each_item)
{
if ($each_item['item_id'] == $pid && $each_item['length'] == $length && $each_item['Category'] == $Category)
{
$_SESSION["cart_array"][$array_key]['quantity']+=$qty;
$wasFound = true;
}
}
if ($wasFound == false)
{
array_push($_SESSION["cart_array"], array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
}
}
header('Location: ' . fetchinline($bpages) . $currentFile);
exit();
}
if(isset($\u POST['pid'])和&isset($\u POST['length'])和&isset($\u POST['Qty'])和&isset($\u POST['Category']))
{
$pid=$_POST['pid'];
$length=$_POST['length'];
$qty=$_POST['qty'];
$Category=$_POST['Category'];
$wasFound=false;
dbconnect();
$statement=$conn->prepare(“从类别ct、分项产品ip、产品pd中选择*)
其中ct.CatID=?和ip.ItemID=?以及pd.Sef=?
");
$statement->execute(数组($Category,$length,$pid));
$result=array();
如果(!$statement->fetch())
{
$result['response']='ready_in_database';
echo jsone_编码($result);
模具();
}
$i=0;
//如果未设置购物车会话变量或购物车数组为空
如果(!isset($_会话[“购物车阵列”])| |计数($_会话[“购物车阵列”])<1)
{
//如果购物车为空或未设置,则运行
$\会话[“购物车数组”]=数组(0=>数组(“项目id=>$pid,“长度”=>$length,“类别”=>$Category,“数量”=>$qty));
}
其他的
{
//如果购物车中至少有一个项目,则运行
foreach($\会话[“购物车数组”]作为$array\u key=>$each\u项)
{
如果($each_item['item_id']=$pid&&$each_item['length']=$length&&$each_item['Category']=$Category)
{
$\u会话[“购物车数组”][$array\u key]['quantity']+=$quantity;
$wasFound=true;
}
}
如果($wasFound==false)
{
数组推送($\会话[“购物车数组”],数组(“项目id=>$pid,“长度”=>$length,“类别”=>$Category,“数量”=>$qty));
}
}
标头('Location:'.fetchinline($bpages)。$currentFile);
退出();
}
第一个。另外,我已经在我的查询中使用了url
。正如你可以看到的那样,添加商品购物车,但是在我运行url
之前,我想运行另一个url
检查,如果检查有效,那么jquery的其余部分将运行,如果无效,jquery的其余部分将不运行。我将删除位置。reload()在AJAX内部,处理来自服务器的响应,如果响应允许我显示div,那么您可以执行$(“#selected”).slideDown();我喜欢一次使用一个请求,这样可以使它更简单,并且不会不必要地重载服务器。location.reload()
重新加载页面以显示购物车中的商品数量。您是在购物车还是在产品页面中
$(document).ready(function(){
$('#selected').hide();
$('#button').click(function(){
var pid = $('#pid').val();
var length = $('#length option:selected').text();
var Category = $('#Category').val();
var cat = $('#Category option:selected').text();
var Qty = $('#Qty').val();
var qty = parseInt($('#Qty').val());
var price = parseFloat($('#pricetag').text().replace(/^\D/, ''), 10) * qty;
price = '\u00A3' + price.toFixed(2);
var category = $('#Category').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);
$('#scategory').text(cat);
$('#slength').text(length);
$('#selected').slideDown();
}
$.ajax({
url: '../cart.php',
type: 'POST',
data: { pid:pid,
length:length,
Qty:Qty,
Category:Category },
dataType:json,
success: function(data)
{
if(data.response=='failed')
{
alert('error');
}
else if(data.response=='success')
{
alert('success');
//location.reload();
}
else if(data.response == 'already_in_database')
{
alert('Already exists in database');
}
},
error: function()
{
alert('error');
}
});
});
});
if (isset($_POST['pid']) && isset($_POST['length']) && isset($_POST['Qty']) && isset($_POST['Category']))
{
$pid = $_POST['pid'];
$length = $_POST['length'];
$qty = $_POST['Qty'];
$Category = $_POST['Category'];
$wasFound = false;
dbconnect();
$statement = $conn->prepare("SELECT * FROM Category ct, Itemised_Product ip, Product pd
WHERE ct.CatID = ? AND ip.ItemID = ? AND pd.Sef = ?
");
$statement->execute(array($Category, $length, $pid));
$result=array();
if (!$statement->fetch())
{
$result['response'] = 'already_in_database';
echo jsone_encode($result);
die();
}
$i = 0;
// If the cart session variable is not set or cart array is empty
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1)
{
// RUN IF THE CART IS EMPTY OR NOT SET
$_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
}
else
{
// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
foreach ($_SESSION["cart_array"]as $array_key => $each_item)
{
if ($each_item['item_id'] == $pid && $each_item['length'] == $length && $each_item['Category'] == $Category)
{
$_SESSION["cart_array"][$array_key]['quantity']+=$qty;
$wasFound = true;
}
}
if ($wasFound == false)
{
array_push($_SESSION["cart_array"], array("item_id" => $pid, "length" => $length, "Category" => $Category, "quantity" => $qty));
}
}
header('Location: ' . fetchinline($bpages) . $currentFile);
exit();
}