这几天我一直在修修补补。查看了所有相关的帖子,仍然不能完全让它工作。有人能帮我看一下指引我正确的方向吗?
我有一个网站,所有的东西都被加载到一个页面上的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
数据。无论如何,在加载的脚本中都不会访问它。
我不知道你是否能够解决这个问题,但我希望我能让你理解你的代码的结构错误。