代码之家  ›  专栏  ›  技术社区  ›  Deadpool

是否在不重新加载页面的情况下将带有会话的表单发布到iframe?

  •  0
  • Deadpool  · 技术社区  · 6 年前

    以下是我正在尝试的操作(无需重新加载页面):

    1. 制作表单
    2. 提交并打开iframe(iframe.php)
    3. 将输入值放入变量
    4. 将变量放入会话
    5. 将会话变量传递给ajax。php
    6. 从iframe发出ajax请求。php到ajax。php
    7. 同时显示加载gif
    8. 在iframe中显示ajax调用的结果
    9. 隐藏加载gif。

    我唯一的问题是,我不知道如何在不重新加载页面的情况下提交表单,所以我可以将值传递到变量中,然后再传递到会话中。

    这是我的短代码:

    主页面。php:

    <?php
        session_start();
        if (isset($_POST['Submit'])) {
            $_SESSION['Flightnumber1'] = $_POST['Flightnumber1'];
            $_SESSION['Datetime1'] = $_POST['Datetime1'];
        }
    ?>
    <form target="iframe" method="post" action="iframe.html">
        <input id="Flightnumber1" name="Flightnumber1" type="text" />
        <input id="Datetime1" name="Datetime1"  type="text"/>
        <input id="Submit-Prufbox" name="Submit" type="submit" onclick='document.getElementById("iframe").src="iframe.php"; $("#iframe").show();' />
    </form>
    <iframe id="iframe" name="iframe" style="display: none;"></iframe>
    

    iframe。php:

     <?php
        session_start();
     ?>
    
        <script src="js/jquery/jquery.min.js"></script>
    
        <div style="display: none;" id="cover" style="position: fixed; height: 100%; width: 100%; top:0; left: 0; background: #FFFFFF; z-index:99999; font-size: 60px; text-align: center; padding-top: 200px; color: #247AFC; user-select: none;-moz-user-select: none;-khtml-user-select: none;-webkit-user-select: none;-o-user-select: none;"><img src="PageImages/loading.gif" /><br />Flug wird gepr&uuml;ft</div>
                    <script language="javascript" type="text/javascript">
                        $(document).ready(function(){
                            $('#php').load('Rechner.php', function() {
                                $("#cover").fadeOut(1500);
                            });
                        });
                    </script>
        <div id="php"></div>
    

    ajaxphp:

    <php 
        session_start();
        echo $regValue = $_SESSION['Flightnumber1'];
        echo $regValue2 = $_SESSION['Datetime1'];
    ?>
    

    我希望有人能理解这种混乱,但我真的不知道如何解释这种更普通的情况,因为它真的很复杂。

    1 回复  |  直到 6 年前
        1
  •  1
  •   kost    6 年前

    您已经在使用jQuery。

    使用ajax提交表单 jQuery.post() .

    以下是文档和示例: https://api.jquery.com/jquery.post/