首页 > 解决方案 > 如何使用 JavaScript 将日期时间从 MySQL 显示到 Web 应用程序?

问题描述

我很难将 MySQL 数据库中的信息显示到我的 Web 应用程序。

我的数据库中有这个:D b

我需要的是在我的 Web 应用程序中显示该日期,如下所示:这个.

如您所见,名称地点和发件人字段显示正确,但日期未定义,我用完了“谷歌搜索”,就像没有人问过这个问题一样!我想提一下,当使用 swagger 或 postman 时,项目是按应有的方式创建的。但是当我从我的网络应用程序创建它时,请求看起来像:这个

它始终为空!为什么?

我的 JS 代码应该是什么样子,或者我应该怎么做才能让它在这里工作是我的 js 代码:

window.TrackYourThings = {
API_BASE_URL: "http://localhost:8088/items",

createItem: function () {

    var name = $("#name-field").val();
    var place = $("#place-field").val();
    var fromWho = $("#from-field").val();
    var date = $("#date").val();

    var item = {
        name: name,
        place: place,
        fromWho: fromWho,
        date: date
    };

    $.ajax({
        url: TrackYourThings.API_BASE_URL,
        method: "POST",
        contentType: "application/json",
        data: JSON.stringify(item)
    }).done(function (response) {
        TrackYourThings.getItems()
    })
},

getItems: function () {
    $.ajax({
        url: TrackYourThings.API_BASE_URL,
        method: "GET",
    }).done(function (response) {
        TrackYourThings.displayItems(response.content);
    })
},

displayItems: function (items) {
    var allItemsHtml = "";

    items.forEach(item => allItemsHtml += TrackYourThings.getItemHtml(item));

    $("#table tbody").html(allItemsHtml);
},

getItemHtml: function (item) {

    return `<tr>
        <td>${item.name}</td>
        <td><label for="type-field"></label>
            <select name="types" id="type-field">
                <option value="Personal">Personal</option>
                <option value="Work">Work</option>
                <option value="Home">Home</option>
                <option value="Important">Important</option>
            </select></td>
        <td>${item.place}</td>
        <td>${item.fromWho}</td>
        <td>${item.date}</td>
        <td><a href="#" class="delete-item fa fa-trash" data-id="${item.id}"></a>
            <a href="#" class="edit-item fa fa-pencil"></a>
        </td>
    </tr>`

},

deleteItem: function (itemId) {
    $.ajax({
        url: TrackYourThings.API_BASE_URL + "?id=" + itemId,
        method: "DELETE",
    }).done(function (response) {
        TrackYourThings.getItems();
    })
},

bindEvents: function () {
    $("#table-form").submit(function (event) {
        event.preventDefault();

        TrackYourThings.createItem()
    });

    $("#table").delegate(".delete-item", "click", function (event) {
        event.preventDefault();

        var itemId = $(this).data("id");

        TrackYourThings.deleteItem(itemId);
    });
}

};

TrackYourThings.getItems(); TrackYourThings.bindEvents();

标签: javascripthtmlmysql

解决方案


我认为您在检索date数据时犯了一个错误,因为 null/undefined 意味着没有数据。据我所知date,您的数据库中没有字段,但有一个datetime字段。

尝试更改以下内容:

var date = $("#date").val();

至:

var date = $("#datetime-field").val();

推荐阅读