【问题标题】:Is it possible to insert or delete a database record using Javascript?是否可以使用 Javascript 插入或删除数据库记录?
【发布时间】:2019-03-06 10:11:54
【问题描述】:

我是 Javascript 新手,目前找不到此信息。

我想创建一个按钮,当单击该按钮时,会在我的数据库中创建一个新条目,另一个按钮会在单击时删除特定条目。我不想使用 PHP 的原因是我不想在单击按钮时重新加载页面。

我在哪里可以找到有关如何实现这一目标的信息?

编辑

好的,我找到了这个:

<script type="text/javascript">
    $(document).on('click','#save',function(e) {
        var data = $("#save-form").serialize();
        $.ajax({
            data: data,
            type: "post",
            url: "save.php",
            success: function(data){
                alert("Data Save: " + data);
            }
        });
    });
</script>

我的 HTML:

<form id="save-form" method="post">
    <input id="save" type="submit" value="Save" name="save-submit" />
</form>

我的 PHP 文件 (save.php) 可以在我的数据库中创建一条新记录,但前提是我的表单的 actionaction="save.php"。我应该在表单的action 中输入什么来触发脚本?

此外,提交按钮似乎仍在重新加载页面(即使我的表单没有action)。

【问题讨论】:

  • 如果您不想重新加载页面,请使用 ajax。
  • 使用ajax触发(使用javascript)php执行而不重新加载页面
  • Ajax 是您的答案。客户端 javascript 在浏览器上运行,无法访问服务器资源(当然也不能直接访问)
  • 顺便说一句,使用 js 编辑数据库(如果可能的话)不会那么聪明。然后每个人都可以向您的数据库发送查询..

标签: javascript


【解决方案1】:

您无法通过您的javascript 直接与Database 通信。您可以做的就是使用Ajax 与您的服务器端语言进行通信(它可以是PHP,.net,Java 等任何东西)并在服务器端语言的帮助下与Database 进行通信

如果您使用的是Ajax,那么您可以使用asynchronous

如果你真的想使用 JavaScript 与数据库通信,那么你可以使用 Node.js(你可以使用 javascript 语法),但它仍然是基于 Javascript 的服务器端语言,它与你的无关浏览器

为什么不能从客户端连接数据库??

主要原因是Security。除了web server/app user.

,您没有向任何人授予数据库访问权限

其他几个原因是

DB load reduction

Scalability  Issues 

Encapsulation Issues 

Ability for fault tolerance

【讨论】:

  • 正确答案。如果您不想使用 PHP,您可以在后端使用 Node.js。作为AJAX 的替代品,还有WebSockets
  • 关于你的第二段,请求是否异步与是否重新加载页面无关。
【解决方案2】:

查看有一些方法可以使用 PHP 插入 db 而不进行回发。 但具体到您的问题,您可以在下面的链接中找到答案

Insert Record in Database Using Textboxes in JavaScript

【讨论】:

    【解决方案3】:

    不仅在 PHP 中,而且在任何其他编程语言(例如:asp.net、java 等)中,您都可以在不加载页面的情况下创建条目并删除特定条目。 您需要使用名为'ajax'的jquery插件。

    使用“ajax”,您可以在不加载页面的情况下将数据发送到服务器。在服务器端获得数据后,您可以做任何您想做的事情。

    您可以在此处找到 ajax 文档:http://api.jquery.com/jquery.ajax/

    这里回答了同样的问题:Delete record without refresh page using php

    如果您有任何问题,请告诉我。

    【讨论】:

      【解决方案4】:

      这是一个简单的客户端服务器通信模型的示例。客户端代码在 JavaScript 浏览器上执行。服务器端代码是 PHP、Nodejs、java、python 等)仅驻留在服务器上。客户端向服务器发送资源请求。并返回一个带有 HTTP 状态的响应。代表响应的状态。客户端 JavaScript 无法直接与服务器数据库通信。它所做的是向服务器发送请求,最终将触发服务器中的实际代码,将数据插入服务器。

      您提到的一个是发送 HTTP 请求而不实际重新加载页面的 ajax 方法。您还可以使用表单将数据发布到服务器,而无需 ajax 会重新加载页面。

      您必须在服务器端验证用户输入,即使您将在客户端验证它。

      您可以使用event.preventDefault() 阻止表单提交,然后通过ajax 将其插入。

      $(document).ready(function() {
        $('#save-form').on('submit', function(e){      
            e.preventDefault();
             var data = $("#save-form").serialize();
              $.ajax({
                  data: data,
                  type: "post",
                  url: "save.php",
                  success: function(data){
                      alert("Data Save: " + data);
                  }
              });
        });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-12
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-11
        • 2021-05-26
        • 1970-01-01
        相关资源
        最近更新 更多