【问题标题】:Submitting form to mysql提交表单到mysql
【发布时间】:2019-05-09 15:09:23
【问题描述】:

我认为我一切正常,但我没有看到我的数据库中的值。我将我的表单正确链接到了 javascript,我似乎在我的代码中放入了正确的查询,但它仍然不起作用。

我的 html 标记和里面的表单,我把所有的 js 都链接在了 head 中:

<!DOCTYPE html>
<html lang="en">
<head>
<title>JavaScript sample: Form Validation & Sql insertion</title>
<script src="jquery-3.3.1.min.js"></script>
<script src="databaseManager.js"></script>
<script type="text/javascript" src="js_always_insert.js"></script>
<script type="text/javascript" src="verstuurData.js"></script>
</head>
<body>
<table id="table1">
<tr>
    <td>Voornaam</td>
    <td><input type="text" id="voor"/></td>
</tr>
<tr>
    <td>Achternaam</td>
    <td><input type="text" id="achter"/></td>
</tr>
<tr>
    <td>Email:</td>
    <td><input type="text" id="email"/></td>
</tr>
<tr>
    <td>Wachtwoord</td>
    <td><input type="password" id="wachtwoord" onkeyup="verstuurData();"/> 
</td>
</tr>
<tr>
    <td><input type="button" id="create" value="Create" 
onclick="validate();finalValidate();"/></td>
    <td><div id="errFinal"></div></td>
</tr>
</table>
</body>
</html>

我的 javascript/ 链接将表单数据发送到 mysql 数据库:

var dbHost = "-";
    var myToken = "-";
    mDatabaseManager.connect(dbHost);
    mDatabaseManager.authenticate(myToken);

    var tableNaam = "persoon";

    function verstuurData() {
        var persoonGegevens = new Array();
        persoonGegevens[0] = document.getElementById('voor').value;
        persoonGegevens[1] = document.getElementById('achter').value;
        persoonGegevens[2] = document.getElementById('email').value;
        persoonGegevens[3] = document.getElementById('wachtwoord').value;

        var maakTabel = "CREATE TABLE IF NOT EXISTS " + tableNaam + "(" + 
            " 'voornaam' varchar(255) DEFAULT NULL, " +
            " 'achternaam' varchar(255) DEFAULT NULL, " + 
            " 'email' varchar(255) DEFAULT NULL, " +
            " 'wachtwoord' varchar(255) DEFAULT NULL, ";

        mDatabasemanager
            .query(maakTabel)
            .done(function(verzenden) { 

                var dataZettenPersoon = "INSERT INTO" + tableNaam + "(" + 
                    "'voornaam' , 'achternaam' , 'email' , 'wachtwoord') " +
                    " VALUES ('" 
                    + persoonGegevens[0]
                    + "','"
                    + persoonGegevens[1]
                    + "','" 
                    + persoonGegevens[2]
                    + "','"
                    + persoonGegevens[3]
                    + "')";

        mDatabaseManager
            .query(dataZettenPersoon)
            .done(function(data) {
                        })
                        .fail(function(reason) {
                            console.log(reason);
                    });

                })
                .fail(function(reason) {
                    console.log(reason);
                });
    }

【问题讨论】:

  • 什么是mDatabaseManager
  • 老实说,我不知道,我写这个 javascript 是查看另一个也使用 mDatabaseManager 的 js,但在那个 js 中,我也无法真正看到它是什么,我没有看到它被定义。
  • @Pakjethee 你对 JavaScript 了解多少?我想你可能需要回去学习一些基础知识。
  • 感谢您的所有帮助,期待您提供更多帮助,而不是批评。谢谢
  • 您的控制台有错误吗?我们正在努力提供帮助,但我们需要信息才能这样做。请参阅How to Ask,了解有关问题预期内容的一些提示。

标签: javascript html mysql ajax forms


【解决方案1】:

您不能直接从 Javascript 查询数据库(至少不能使用没有库的纯 javascript)。

您的 Javascript 代码应该调用一个服务器端函数(您可以用 PHP、C# 等编写),该函数会查询数据库并将结果返回给您的 Javascript 代码。

这个例子可能会有所帮助:https://www.w3schools.com/js/js_ajax_database.asp

【讨论】:

  • OP,PHP 有一种与 MySQL 交互的好方法。它被称为 mysqli,您只需使用几个参数(用户名/密码、数据库等)调用它,然后就可以使用了。那里有很好的文档,而且阅读起来并不难
  • 使用PHP的PDO对象也是一个不错的选择+更通用(数据库不需要是MySql)
  • 这个学校项目的坏处是我们不允许使用 php :/
猜你喜欢
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多