使用Ajax和iframe传递会话变量不起作用

时间:2018-01-18 09:18:52

标签: php html ajax session-variables

我试图通过会话将页面(表单的值)中的变量传递给php页面。 在我之间有一个iframe,在表单发送后打开另一个html页面并向php页面发出ajax请求,但它总是失败并给我这个:

  

注意:未定义的索引:Flightnumber1

     

注意:未定义的索引:Datetime1

会话不起作用。 如果我没有发出ajax请求并且只是将我的php文件的php代码放在我的iframe-html-page中,那么会话就可以了,但我真的需要它成为一个ajax请求。

我尝试按照stackoverflow上的建议将标题更改为:

header('P3P: CP="CAO PSA OUR"');

我还检查了我的测试浏览器中是否允许使用第三方cookie,即使我没有看到它的含义,因为它不是cookie而是会话,但这里也有建议。

我甚至尝试将带有会话的变量传递给iframe页面,然后从中创建一个新变量并将其传递给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.html"; $("#iframe").show();' />
</form>

<iframe id="iframe" name="iframe" style="display: none;"></iframe>

这是在提交表单后在iframe中打开的页面: 的 Iframe.html的

<?php
    session_start();
?>

<script>
    $( "#result" ).load( "AjaxRequestPage.php" );
</script>

这是ajax请求的页面: 的 AjaxRequestPage.php

session_start();
$regValue = $_POST['Flightnumber1'];
$regValue2 = $_POST['Datetime1'];

phpcode;
phpcode;
phpcode;

1 个答案:

答案 0 :(得分:0)

在AjaxRequestPage.php中,您需要通过$ _SESSION

调用变量
session_start();
$regValue = $_SESSION['Flightnumber1'];
$regValue2 = $_SESSION['Datetime1'];