将会话发布到iframe而不重新加载页面?

时间:2018-01-18 21:55:39

标签: php html session-variables

这是我正在尝试做的事情(没有重新加载页面):

  1. 制作表格
  2. 提交并打开iframe(iframe.php)
  3. 将输入值放入变量
  4. 将变量放入Session
  5. 将会话变量传递给ajax.php
  6. 从iframe.php发出ajax请求到ajax.php
  7. 同时显示加载gif
  8. 在iframe中显示ajax调用的结果
  9. 隐藏加载gif。
  10. 我唯一的问题是,我不知道如何在不重新加载页面的情况下提交表单,因此我可以将值传递给变量然后进入会话。

    这是我的简短代码:

    MainPage.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>
    

    ajax.php:

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

    我希望有人能理解那些烂摊子,但我真的不知道如何解释这个更普通,因为它真的很复杂。

1 个答案:

答案 0 :(得分:1)

你已经使用了jQuery。

使用jQuery.post()

提交带有ajax的表单

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