php - 使用Jquery与数据库进行验证

标签 php jquery mysql ajax

我对jquery很陌生,但我想知道它们是否是一种使用下面的jquery运行mysql的方法。

在我的cart.php中,我有一个查询,用于检查发布的内容是否在数据库中,如果不是,则不会添加该项目。

在我的 view.php 页面中,这是下面的 jqueryhidden div 所在的位置。当您单击 add 按钮 隐藏的 div 显示您已添加的内容。

<button type="submit" name="submit" class="show_hide" id="button" name="submit">Add</button>

Jquery

$(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 },
            success: function(data)
            {
             location.reload();  
            }
        });
    });
  });

隐藏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>

已编辑 添加查询代码

在 cart.php 页面中我有这个查询

$statement = $conn->prepare("SELECT * FROM Category ct, Itemised ip, Product pd
                         WHERE ct.CatID = ? AND ip.Length = ? AND pd.pid = ?
                         ");
     $statement->execute(array($Category, $length, $pid));
     if (!$statement->fetch()) {
         exit();
     }

我用它来检查数据库中是否存在发布的内容。这或多或少与我想在 jquery 中运行的查询相同,以检查 var 是否存在,如果不存在,则 url:./cart.php 不应运行。

已更新以显示我的 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();
}

我的问题 在购物车页面中,我有一个查询,它检查用户是否未检查发布的内容。我想对上面的 jquery 执行相同的操作,如果用户我想停止,我想停止显示隐藏的div

希望我的解释能让您理解。感谢您抽出时间。

最佳答案

我不确定我是否完全理解你的问题。是吗:

  1. 按“添加”按钮
  2. AJAX 请求检查产品是否存在
  3. 如果是,那么显示隐藏的div?

或者

  1. 按“添加”按钮
  2. 显示隐藏字段并提供更多信息
  3. 将产品添加到购物车

无论如何,在上述两种情况下,您都可以向服务器发出 AJAX 请求并检查产品是否存在。如果您查看 $.ajax success 函数,那么“数据”实际上是来自服务器的响应,您可以包含您需要的任何内容并使用 javascript/jquery 处理数据。

关于php - 使用Jquery与数据库进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147413/

相关文章:

javascript - 我的jQuery验证不适用于我的php/html表单,不确定为什么

php - 如何从 codeigniter 中的数据库表中获取特定值

javascript - 如何访问有序列表的所有元素

javascript - 当元素在视口(viewport)中时应用选择器

php - 两个 while 循环从两个查询中获取数据只显示一个结果

php - 注册表单(验证电子邮件)

php - 自发送php表单并将mysql数据拉到php中的html

jquery - 如何在容器中垂直和水平居中 div

mysql - MySQL 触发器声明中缺少 'colon' 错误

php - 从多个表中抓取信息