0

这几天我一直在修修补补。检查了所有相关的帖子,但仍然无法让它发挥作用。任何人都可以看看并引导我朝着正确的方向前进吗?

我有一个网站,所有内容都加载到页面上的 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 得到的输出

信息:这是一些信息

卡车号码:

所以你可以看到它正确地传递了 $_SESSION 并且该函数正在工作但是我无法让它传递提交的数据。

任何人有任何想法让这个去吗?

提前致谢。-科林。

4

1 回答 1

0

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

并且在那里执行的 PHP 片段除了将一个空的 POST 值 (NULL) 传输到局部变量然后传输到会话数组之外,没有做任何事情。

我认为您认为调用 javascript 时会执行此 PHP 代码,但事实并非如此!首先执行所有 PHP,并将结果回显给浏览器。然后呈现页面并执行 javascript。

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

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

我不知道你是否能够解决这个问题,但我希望我能让你理解代码的结构错误。我和我认识的任何新手都见过这个。

于 2013-05-13T23:25:52.543 回答