即使没有更改,Ajax 也会重新加载

发布于 2025-01-20 23:57:36 字数 6020 浏览 2 评论 0原文

要在FullCalendar上编辑事件,我单击一个事件,模态设置,并连接到PHP文件,并在JS中具有AJAX调用。 问题是:当我打开模态并关闭模态时,即使我没有进行任何更改,它也会重新加载页面。有人可以解释一下这些代码中的问题,我似乎找不到解决方案,而且在不进行更改的情况下,它非常烦人。

js呼叫:

    $('#editNewEvent').modal('show').one('hidden.bs.modal', function (e) {
                if(event.nomeUtente == $("#nomeUtente").data('value')){
                        event.title = $('#editEname').val();
                        event.start = $('#editStarts').val();
                        event.end = $('#editEnds').val();
                        
                        $.ajax({
                            url: 'eventi/updateEvent.php',
                            type: 'POST',
                            data:  {start: event.start, _id: event.idAssenza, end: event.end, title: event.title},
                            success: function(data) {
                                    window.location.reload(true);
                            } 
                        });                             
                        $('#calendar').fullCalendar('updateEvent', event._id);
                    }
});

php editevents:

require_once "../config.php";
  session_start(); 
   
    
    $id =           $_POST['_id'];
    $ename =        $_POST['title'];
    $starts =       $_POST['start'];
    $ends =         $_POST['end'];
    $nomeUtente =   $_SESSION['nomeUtente'];        

     // update the records
    $sql = "UPDATE assenze SET ename = '$ename', starts = '$starts', ends = '$ends' WHERE idAssenza = $id AND nomeUtente = '$nomeUtente'"; //

    if (mysqli_query($conn, $sql)) {
          echo "Record updated successfully";
        } else {
          echo "Error updating record: " . mysqli_error($conn);
        }

       mysqli_close($conn);

模态:

<div class="modal fade" id="editNewEvent" aria-hidden="true" aria-labelledby="editNewEvent" role="dialog" tabindex="-1" data-show="false" data-toggle="modal">
                    <div class="modal-dialog modal-simple">
                        <form class="modal-content form-horizontal" role="form">
                            <div class="modal-header">
                                <button type="button" class="close" aria-hidden="true" data-dismiss="modal">×</button>
                                <h4 class="modal-title">Modifica Assenza di <input type="text" name="editNomeUtente" id="editNomeUtente" value="editNomeUtente" disabled></h4>
                            </div>
                            <div class="modal-body">
                                <div class="form-group row">
                                    <label class="form-control-label col-md-2" for="editEname">Tipo:</label>
                                    <input list="assenza" name="editEname" id="editEname" style="margin-left: 15px;" />
                                    <datalist id="assenza">
                                        <option value="Normali">
                                        <option value="Straordinarie">                        
                                        <option value="Ferie">
                                        <option value="Malattia">
                                        <option value="Permesso">
                                        <option value="Smart Working">
                                        <option value="Trasferta">
                                        <option value="Assenza non retribuita">
                                        <option value="Altro">
                                    </datalist>  
                                    <input type="hidden" name="editNomeUtente" id="editNomeUtente" value="<?php echo $_SESSION["nomeUtente"]; ?>">
                                </div>                                  
                                <div class="form-group row">
                                    <label class="col-md-2 form-control-label" for="editStarts">Inizio:</label>
                                    <div class="col-md-10">
                                        <div class="input-group">
                                            <input type="datetime-local" class="form-control" id="editStarts" name="editStarts" data-container="#editNewEvent">
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group row">
                                    <label class="col-md-2 form-control-label" for="editEnds">Fine:</label>
                                    <div class="col-md-10">
                                        <div class="input-group">
                                            <input type="datetime-local" class="form-control" id="editEnds" name="editEnds"data-container="#editNewEvent">
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="modal-footer">
                                <div class="form-actions">
                                    <button class="btn btn-primary" data-dismiss="modal" type="button" id="salva">Salva modifiche</button>
                                    <button class="btn btn-sm btn-white btn-pure" id="annulla" href="">Annulla</button>                                 
                                </div>                  
                            </div>
                        </form>
                    </div>
                </div>

To edit an event on Fullcalendar I click on an event, a modal apparead and is connected to a PHP file and has an AJAX call in JS.
The problem is: when I open the modal and close it, even if I have made no changes it reload the page. Can someone please explain what's the problems in these code, I cant seems to find a solution and it's pretty annoying that reload without making changes.

JS call:

    $('#editNewEvent').modal('show').one('hidden.bs.modal', function (e) {
                if(event.nomeUtente == $("#nomeUtente").data('value')){
                        event.title = $('#editEname').val();
                        event.start = $('#editStarts').val();
                        event.end = $('#editEnds').val();
                        
                        $.ajax({
                            url: 'eventi/updateEvent.php',
                            type: 'POST',
                            data:  {start: event.start, _id: event.idAssenza, end: event.end, title: event.title},
                            success: function(data) {
                                    window.location.reload(true);
                            } 
                        });                             
                        $('#calendar').fullCalendar('updateEvent', event._id);
                    }
});

PHP editEvents:

require_once "../config.php";
  session_start(); 
   
    
    $id =           $_POST['_id'];
    $ename =        $_POST['title'];
    $starts =       $_POST['start'];
    $ends =         $_POST['end'];
    $nomeUtente =   $_SESSION['nomeUtente'];        

     // update the records
    $sql = "UPDATE assenze SET ename = '$ename', starts = '$starts', ends = '$ends' WHERE idAssenza = $id AND nomeUtente = '$nomeUtente'"; //

    if (mysqli_query($conn, $sql)) {
          echo "Record updated successfully";
        } else {
          echo "Error updating record: " . mysqli_error($conn);
        }

       mysqli_close($conn);

MODAL:

<div class="modal fade" id="editNewEvent" aria-hidden="true" aria-labelledby="editNewEvent" role="dialog" tabindex="-1" data-show="false" data-toggle="modal">
                    <div class="modal-dialog modal-simple">
                        <form class="modal-content form-horizontal" role="form">
                            <div class="modal-header">
                                <button type="button" class="close" aria-hidden="true" data-dismiss="modal">×</button>
                                <h4 class="modal-title">Modifica Assenza di <input type="text" name="editNomeUtente" id="editNomeUtente" value="editNomeUtente" disabled></h4>
                            </div>
                            <div class="modal-body">
                                <div class="form-group row">
                                    <label class="form-control-label col-md-2" for="editEname">Tipo:</label>
                                    <input list="assenza" name="editEname" id="editEname" style="margin-left: 15px;" />
                                    <datalist id="assenza">
                                        <option value="Normali">
                                        <option value="Straordinarie">                        
                                        <option value="Ferie">
                                        <option value="Malattia">
                                        <option value="Permesso">
                                        <option value="Smart Working">
                                        <option value="Trasferta">
                                        <option value="Assenza non retribuita">
                                        <option value="Altro">
                                    </datalist>  
                                    <input type="hidden" name="editNomeUtente" id="editNomeUtente" value="<?php echo $_SESSION["nomeUtente"]; ?>">
                                </div>                                  
                                <div class="form-group row">
                                    <label class="col-md-2 form-control-label" for="editStarts">Inizio:</label>
                                    <div class="col-md-10">
                                        <div class="input-group">
                                            <input type="datetime-local" class="form-control" id="editStarts" name="editStarts" data-container="#editNewEvent">
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group row">
                                    <label class="col-md-2 form-control-label" for="editEnds">Fine:</label>
                                    <div class="col-md-10">
                                        <div class="input-group">
                                            <input type="datetime-local" class="form-control" id="editEnds" name="editEnds"data-container="#editNewEvent">
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="modal-footer">
                                <div class="form-actions">
                                    <button class="btn btn-primary" data-dismiss="modal" type="button" id="salva">Salva modifiche</button>
                                    <button class="btn btn-sm btn-white btn-pure" id="annulla" href="">Annulla</button>                                 
                                </div>                  
                            </div>
                        </form>
                    </div>
                </div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放低过去 2025-01-27 23:57:36

因为你触发了事件 it (hidden.bs.modal),当你关闭模态时,事件 this 将被调用 ->致电-​​> eventi/updateEvent.php。
我建议您只在单击按钮 Salva modifiche 时才调用事件更新

Because you trigger event it (hidden.bs.modal), event this will be call when you close modal -> call to -> eventi/updateEvent.php.
I suggest you should be call event update when only you click to button Salva modifiche

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文