【问题标题】:Updating parts of a .php page更新 .php 页面的部分内容
【发布时间】:2019-08-27 19:00:22
【问题描述】:

是否可以更新页面并进行下一个功能,类似于刷新它?

我有一个页面,当按下保存按钮时,它会将数据提交到earnings_amendment_account_add.php,页面会被刷新。

现在,我想通过 AJAX 实现的是提交数据,然后显示 Success Notification 并在按下 时刷新 dataTable在我的模态中保存

例如,页面的这部分<?php include 'includes/notif-info-display.php'; ?> 将在提交页面时触发。

此屏幕截图仅在我提交表单并刷新页面后显示。

 <section class="content">
    <div id = "content">
<?php include 'panels/accounting_panel.php'; ?>
<?php include 'includes/notif-info-display.php'; ?>
</div>

现在,我做了一些修改以避免刷新页面。它会将数据发送到数据库,但我无法找到刷新数据表的方法,并根据我的earnings_amendment_account_add.php 中的触发器重新加载&lt;?php include 'includes/notif-info-display.php'; ?&gt; 并显示它是成功还是失败。

$(document).ready(function () {
  // Listen to click event on the submit button
  $('#add').click(function (e) {

    e.preventDefault();

    // Add trigger based on button name, value
    var add = $("#add").val();

    var add_accountcode = $("#add_accountcode").val();
    var accounttitle = $("#accounttitle").val();
    var accounttype = $("#accounttype").val();
    var postedby = $("#postedby").val();
    var dateposted = $("#dateposted").val();

    $.post("earnings_amendment_account_add.php", 
    {

    // Add trigger based on button name, value
      add: add,

      add_accountcode: add_accountcode,
      accounttitle: accounttitle,
      accounttype: accounttype,
      postedby: postedby,
      dateposted: dateposted
    }).complete(function() {
        console.log("Success");
      });
  });
});

触发器来自earnings_amendment_account_add.php页面


        if(sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET))){
            $_SESSION['success'] = 'Earnings Amendment Account Data added successfully';
        }
        else{
            $_SESSION['error'] = $conn->echo .print_r(sqlsrv_errors(), true);
        }
    }   
    else{
        $_SESSION['error'] = 'Fill up add form first';
    }
?>

这是includes/notif-info-display.php

     <?php
        if(isset($_SESSION['error'])){
          echo "
            <div class='alert alert-danger alert-dismissible'>
              <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>
              <h4><i class='icon fa fa-warning'></i> Error!</h4>
              ".$_SESSION['error']."
            </div>
          ";
          unset($_SESSION['error']);
        }
        if(isset($_SESSION['success'])){
          echo "
            <div class='alert alert-success alert-dismissible'>
              <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>
              <h4><i class='icon fa fa-check'></i> Success!</h4>
              ".$_SESSION['success']."
            </div>
          ";
          unset($_SESSION['success']);
        }
      ?>

这发生在我单击 #addnew 模态的提交之后。

<form autocomplete='off' class="form-horizontal" method="POST" action="earnings_amendment_account_add.php">

FORMS HERE ---

    <div class="modal-footer">
                <button type="button" class="btn btn-default btn-flat pull-left" data-dismiss="modal"><i class="fa fa-close"></i> Close</button>
                <!-- Add Button ID, Change Type to button, add name, add value -->
                <button type="button" class="btn btn-primary btn-flat" name="add" value="add" id="add"><i class="fa fa-save"></i> Save</button>
                </form>
            </div>
        </div>

一切正常,数据已添加,我唯一的问题是我似乎无法找到重新加载&lt;?php include 'includes/notif-info-display.php'; ?&gt; 并在按下保存时显示成功通知的方法.

这是我的模态。

有没有办法做到这一点? &lt;?php include 'includes/notif-info-display.php'; ?&gt;会重新加载并显示提交的数据是成功还是失败,同时刷新dataTable并在那里显示最新数据?

【问题讨论】:

    标签: javascript php jquery html ajax


    【解决方案1】:

    使用echo "&lt;meta http-equiv='refresh' content='0'&gt;"; 在您的if(isset($_SESSION['success'])){重新加载之后。 还要在这里设置$activateSuccess = true;。 然后用

    回显您的消息

    if($activateSuccess == true) { echo " <div class='alert alert-success alert-dismissible'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <h4><i class='icon fa fa-check'></i> Success!</h4></div>"; } return;

    【讨论】:

    • 这都在notif-info-display.php里面,对吧?
    【解决方案2】:

    您必须在 jquery 代码上处理此问题。在处理 ajax 请求的 php 代码中,您必须将成功数据作为 JSON 发送回。然后在您的 ajax 请求完成部分,处理这些数据,创建一个表格行以添加到您的 Datatable 并弹出一个成功通知。 PHP 没有部分更新。这是客户端的问题,php在服务器中运行。

    【讨论】:

    • 能否请教一些关于这个问题的指导,我不太确定如何处理这个问题。
    猜你喜欢
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2012-09-12
    • 2023-04-10
    • 2014-02-23
    • 2011-02-11
    相关资源
    最近更新 更多