0

所以我正在尝试使用 Webix,到目前为止我很喜欢它。我正在玩弄移动日历/日程安排程序,却被困在将新事件保存到 mysql 数据库中。我遵循了有关将数据保存到数据库的教程和文档,并且确实能够保存新事件。问题是它保存了两次新事件,我无法弄清楚原因。这是代码:

webix.ready(function(){
        webix.ui.fullScreen();
        webix.ui({
        rows:[
            {
                view: "toolbar", id:"toolbar", elements:[
                {
                    view: "icon", icon: "bars",
                    click: function(){
                        if( $$("menu").config.hidden){
                            $$("menu").show();
                        }
                        else
                            $$("menu").hide();
                    }
                },
                {
                    view: "label",
                    label: "JPlan"
                }

            ]
            },
            {
                view: "scheduler",
                id: "scheduler",
                url: "data/getEvents.php",
                save:{
                    "insert":"data/saveEvents.php",
                    "update":"data/update.php",
                    "delete":"data/delete.php"
                }
            }
            ]

        });


    });

以及保存新事件的 php 代码:

<?php
include('mysql.class.php');

$db = new MySQL();

$values = array();

$now = time();


$values["eventTitle"]  = MySQL::SQLValue($_POST['text']);
$values["eventJudge"]  = MySQL::SQLValue($_POST['judge']);
$values["eventStart"]  = MySQL::SQLValue($_POST['start_date']);
$values["eventEnd"]  = MySQL::SQLValue($_POST['end_date']);
$values["eventNotes"]  = MySQL::SQLValue($_POST['details']);
$values["eventAddedTime"]  = MySQL::SQLValue($now);
$values["eventAddedBy"]  = MySQL::SQLValue('');


// Execute the insert 
$result = $db->InsertRow("tbl_events", $values);
?>

该应用程序很好地加载了数据库中的所有事件。只是当我保存一个新事件时,它会将事件两次保存在数据库中。我还没有处理更新和删除代码。

有什么帮助吗?

4

1 回答 1

0

客户端代码需要来自服务器端的一些有效 JSON 响应,作为保存操作成功的确认。否则,客户端代码可能会再次尝试保存数据。

$result = $db->InsertRow("tbl_events", $values);
$id = get_id_of_new_record();
echo "{ id: $id }";
于 2016-02-03T10:26:40.413 回答