表单会话数据不张贴,会话工作


form session data not posting, sessions working

这几天我一直在修修补补。查看了所有相关的帖子,仍然不能完全让它工作。有人能帮我看一下指引我正确的方向吗?

我有一个网站,所有的东西都被加载到一个页面上的div。除了表单数据之外,一切都很好。我可以加载会话数据进行测试,它工作得很好,但是我似乎无法获得任何输入的表单数据。

我有session_start();包含在connection.php的开头PHP标记下方的顶部。每个页面都需要Connection.php。

connection.php开始。

<?
 session_start();

下面是一些来自addvehicle.php的代码示例(没有全部发布,因为它是巨大的,其余的是不相关的,可以如果需要的话)

<script type="text/javascript">
    $(document).ready(function()
    {
            $('form#newvehicleform').submit(function()
            {
            <?php
            $trucknumbera=$_POST["trucknumber"];
            $_SESSION['trucknumber']=$trucknumbera;
            $_SESSION['info']="this is some info";
            ?>
                    $("#mainwindow").load("addvehiclepost.php");
                    return false;
            });
    });
</script>

  <form id="newvehicleform" class="newvehicleform" method="post" action="<?php echo $PHP_SELF;?>">
  <table>
  <tr>
       <td>
            Truck Number
       </td>
        <td>
                <input name="trucknumber" class="validate[required,custom[number]]" type="text" id="trucknumber" autofocus autocomplete="off" required />
          </td>
 </tr>
  <tr>
    <td>
            <br>
            <input type="submit" id="submit" class="s-submit" alt="Submit" value="Submit">
    </td>
</tr>
</table>
</form>
addvehiclepost.php

require ('./connection.php');
echo "<br>info: " .$_SESSION['info']. "<br>";
$trucknumber=$_SESSION['trucknumber'];
echo "<br>trucknumber: " .$trucknumber;

这是我从addvehiclepost.php

得到的输出

info:这是一些信息

trucknummer:

所以你可以看到它正确地传递了$_SESSION,这个函数正在工作,但是我就是不能让它传递提交的数据。

谁有什么想法让这个去吗?

提前感谢。科林。

当您使用PHP执行第一个脚本时,没有表单数据。

并且在那里执行的PHP片段除了将空POST值(NULL)传递给本地变量然后传递给会话数组之外不做任何事情。

我认为你认为这PHP代码得到执行时,javascript被调用,但事实并非如此!首先执行所有PHP,并将结果回显给浏览器。然后渲染页面并执行javascript。

因此,在浏览器首次加载表单页面时,代码的PHP部分确实复制了一个空值(并设置了一个静态值,这就是您所看到的)。

然后javascript起作用。这意味着在您的情况下,没有表单POST请求,而只是对addvehiclepost.php脚本的GET请求。没有POST请求意味着没有$_POST数据。无论如何,在加载的脚本中都不会访问它。

我不知道你是否能够解决这个问题,但我希望我能让你理解你的代码的结构错误。