【问题标题】:Dynamically Query a Database to check for value动态查询数据库以检查值
【发布时间】:2010-10-16 05:48:58
【问题描述】:

我需要动态检查某个值“SheetNumber”是否在我的 mysql 数据库中。我已经在流行的网站上看到它完成了,我正在尝试找到一个很好的教程来为我概述它。我对 Javascript 相当陌生,但我知道很多 PHP。

我急于学习如何做到这一点。

  • 克里斯

【问题讨论】:

    标签: php javascript jquery mysql


    【解决方案1】:

    您需要使用 Ajax 来执行此操作。我推荐Jquery 库。使用 Jquery 文档安装它,然后使用类似以下内容:

    Javascript:

    function makeAjaxRequest()
    {
       var url="script-that-checks-db.php";
       $.get(url,{},verifyDb);
    }
    
    function verifyDb(response)
    {
        if (response==1)
        {
           //The value exists, do what you want to do here
        }
    
        else
        {
          //The value doesn't exist
        }
    }
    

    当有人单击链接、单击按钮或其他任何内容时,您可以调用 makeAjaxRequest(),例如:

    <a href="#" onclick="makeAjaxRequest();">Check database</a>
    

    文件script-that-checks-db.php(当然,命名不同)的php代码将负责检查db。代码看起来像这样。

    PHP:

    <?php
    
    //Do the mysql query and find out if the value exists or not.
    
    if ($exists==true)
       echo "1"; //1 will indicate to javascript that the value exists.
    else
       echo "0";
    ?>
    

    你也可以在这里使用 JSON 而不是 0/1 方法,但因为你是新手,我认为这对你来说已经足够简单了。

    希望对您有所帮助,如果您有任何问题,请随时提出。另外,请随意更改函数和文件名。

    【讨论】:

    • 我将如何检索输入到 PHP 脚本中的字段中的值?
    • 使用 $_POST['field_name'] 或 $_GET['field_name'] 如果您使用 $.get 进行 ajax
    • 我需要编辑 jQuery get 的 {} 部分吗?还是会自动发送?谢谢!
    • 是的,您将像这样编辑它:{fieldName: fieldvalue}。使用逗号分隔值。 fieldValue 需要是一个变量,其中包含您当然要发送的值
    • 如果您有任何其他问题,您可以在 SO 上提出另一个问题 :)
    【解决方案2】:

    这很简单;查看关于 AJAX 函数的 jQuery 文档:jQuery.get()

    您需要设置一个简单的 PHP 服务,该服务返回原始数据、XML 或 JSON 格式的数据,然后您可以使用 jQuery 回调函数对其进行解释。

    例子:

    function checkData(userInputValue) {
      jQuery.get('ajax-backend.php?value='+userInputValue, false, function(data) { alert('Response from server: ' + data)});
    }
    

    您可能希望解释此值并更改页面上的某些内容以指示操作是否成功,而不是使用 alert() 来显示来自服务器的响应。

    这是上一个问题的更详细示例:Beginning jQuery help

    【讨论】:

      【解决方案3】:

      我假设“动态”是指“不离开页面”,建议使用“AJAX”解决方案。

      您无法使用客户端 JavaScript 访问您的数据库,我建议使用 JavaScript 库/框架(如 JQuery)在“幕后”调用 PHP 脚本来执行您想要的操作。

      【讨论】:

        猜你喜欢
        • 2015-11-20
        • 1970-01-01
        • 2018-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多