簡體   English   中英

使用 AJAX 提交表單后刷新 div

[英]Refresh div after form submitting with AJAX

我確實有一個簡單的表單,我使用 ajax 將數據提交到我的數據庫。 一切正常。 現在提交表單后,我收到一條帶有“完成”文本的警報消息。

我唯一的問題是,我的 div 現在應該自動重新加載,因此用戶可以在單擊警報消息中的“確定”按鈕后立即看到發布的結果。 有人可以告訴我如何實現這一目標嗎? 這是我的代碼。

$(function() {
    $('#form2').on(\"submit\", function(event) {
        event.preventDefault();

        $.ajax({
            url: 'index.php',
            type: 'post',
            data: $(this).serialize(),
            beforeSend: function(){
                $('#loading').show();
            },
            complete: function(){
                $('#loading').hide();
            },
            success: function() {
                alert('Done');
            }
        });
    });
});
<div id='refreshtodo'>
    <form name='form2' id='form2' action='./index.php' method='post'>
        <input type='text' class='big' name='duedate' size='10' maxlength='10' value='".date("d.m.Y")."'>
        <input type='submit' class='btn btn-info btn-sm' role='button' value='add'>
        <div id='loading' style='display:none;'>
            <img src=\"./bootstrap/assets/images/spinner-loading-small.gif\" alt=\"Loading - Please wait...\" />
    </form>
</div>

DIV #refreshtodo應重新加載,一旦在警報消息中單擊“確定”!

你應該echo你想在你的div來顯示結果index.php ,例如:

//your index code
...

echo "this is the result".

然后在您的 js 中,您應該只在 div #refreshtodo打印從 php 頁面返回的result

....
success: function(result) {
     alert('Done');
     $("#refreshtodo").html(result);
}

希望這可以幫助。

您需要將響應數據插入到 HTML (DOM) 中。

試試這個 JS

$(function() {
    $('#form2').on(\"submit\", function(event) {
        event.preventDefault();

        $.ajax({
            url: 'index.php',
            type: 'post',
            data: $(this).serialize(),
            success: function(response) {
                $('#refreshtodo').html(response);
            }
        });
    });
});

但是,這將從 HTML 中刪除您的表單。 我建議使用不同的 ID(例如“#todo-response”)創建第二個 div 並在那里顯示響應。

您還需要確保您的 PHP 腳本返回您希望顯示的 HTML 內容。

我希望這有幫助。

您的ajax是否返回您想要輸入到表單中的任何內容? 它是否返回 HTML 或 json/xml?

如果是 HTML

success: function(data) {
    alert('Done');
    $('#refreshtodo').html(data);
}

JSON 需要您手動將數據從對象映射到表單元素中的值。

目前, #refresthtodo只有一個表格。 因此,如果您只想重置表單:

var form = document.getElementById("form2");
form.reset();

<div>提交表格后不顯示</div><div id="text_translate"><p>我正在嘗試使用 FLask 並使用簡單的 HTML 和 CSS 為前端構建一個 Webapp,因為我是新手。 現在我面臨的問題是&lt;div class="blocking"&gt;在我提交表單后沒有顯示,但&lt;div class="spinner"&gt;工作正常。 下面是代碼</p><pre class="lang-html prettyprint-override"> {% extends "layout.html" %} {% block content %} &lt;body&gt; &lt;form role="form" action="/reviewrequest/{{ value }}" method="POST" onSubmit="return validateForm():"&gt; &lt;table&gt;............. &lt;/table&gt; &lt;input type="submit" name="btn" value="Submit" class="btn btn-success success" /&gt; &lt;div id="blocking" class="blocking"&gt; &lt;div id="spinner" class"center loading"&gt;&lt;/div&gt;&lt;/div&gt; &lt;/form&gt; &lt;script&gt; function validateForm(){ document.getElementById("blocking").style.display = = 'block'; document.getElementById("spinner").style.display = = 'block'; } &lt;/script&gt; &lt;/body&gt; {% endblock %}</pre><p> 注意:相同的 CSS 代碼適用於另一個 HTML 文件。</p><p> 編輯:添加了 '.style.display' 但仍然相同,只有微調器顯示</p><pre class="lang-css prettyprint-override"> &lt;style type="text/css"&gt; #spinner { display: none; }.loading { border: 2px solid #ccc; width: 60px; height: 60px; border-radius: 50%; border-top-color: #1ecd97; border-left-color: #1ecd97; animation: spin 1s infinite ease-in; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #blocking { display: none; }.blocking{ width: 100%; height: 100%; background: rgba(0,0,0,0.75) no repeat center center; } &lt;/style&gt;</pre></div>

[英]<div> not showing after submitting the form

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 提交表格后刷新頁面 <div>提交表格后不顯示</div><div id="text_translate"><p>我正在嘗試使用 FLask 並使用簡單的 HTML 和 CSS 為前端構建一個 Webapp,因為我是新手。 現在我面臨的問題是&lt;div class="blocking"&gt;在我提交表單后沒有顯示,但&lt;div class="spinner"&gt;工作正常。 下面是代碼</p><pre class="lang-html prettyprint-override"> {% extends "layout.html" %} {% block content %} &lt;body&gt; &lt;form role="form" action="/reviewrequest/{{ value }}" method="POST" onSubmit="return validateForm():"&gt; &lt;table&gt;............. &lt;/table&gt; &lt;input type="submit" name="btn" value="Submit" class="btn btn-success success" /&gt; &lt;div id="blocking" class="blocking"&gt; &lt;div id="spinner" class"center loading"&gt;&lt;/div&gt;&lt;/div&gt; &lt;/form&gt; &lt;script&gt; function validateForm(){ document.getElementById("blocking").style.display = = 'block'; document.getElementById("spinner").style.display = = 'block'; } &lt;/script&gt; &lt;/body&gt; {% endblock %}</pre><p> 注意:相同的 CSS 代碼適用於另一個 HTML 文件。</p><p> 編輯:添加了 '.style.display' 但仍然相同,只有微調器顯示</p><pre class="lang-css prettyprint-override"> &lt;style type="text/css"&gt; #spinner { display: none; }.loading { border: 2px solid #ccc; width: 60px; height: 60px; border-radius: 50%; border-top-color: #1ecd97; border-left-color: #1ecd97; animation: spin 1s infinite ease-in; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #blocking { display: none; }.blocking{ width: 100%; height: 100%; background: rgba(0,0,0,0.75) no repeat center center; } &lt;/style&gt;</pre></div> 提交后刷新Ajax表單 在AJAX表單提交后刷新Div的內容 按下按鈕后,使用AJAX和FORM自動刷新DIV,間隔時間 通過POST方法提交表單后,為什么Ajax在移動設備上刷新頁面? 在 laravel 9 & vuejs 3 中提交表單后刷新表格 如何在提交表單后延遲頁面刷新 使用Ajax提交表單后的表單分配器 在AJAX請求后刷新div
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM