我几天都在修补这个问题。检查了所有相关的帖子,仍然无法完成它的工作。任何人都能看一眼并引导我朝着正确的方向前进?
我有一个网站,其中所有内容都被加载到页面上的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并且该函数正在运行但是我无法让它传递提交的数据。
任何人对此事都有任何想法吗?
提前致谢。 -Colin。
答案 0 :(得分:0)
使用PHP执行第一个脚本时,没有表单数据。
除了将空POST值(NULL)传递给局部变量然后传输到会话数组之外,在那里执行的PHP片段没有做任何事情。
我认为你认为这个PHP代码在调用javascript时会被执行,但事实并非如此!首先执行所有PHP,然后将结果回显给浏览器。然后呈现页面并执行javascript。
因此,代码的PHP部分会在浏览器首次加载表单页面时复制一个空值(并设置一个静态值,这就是你所看到的)。
然后javascript行动。在您的情况下,这意味着没有表单POST请求,而只是对addvehiclepost.php
脚本的GET请求。没有POST请求意味着没有$_POST
数据。无论如何都不会在加载的脚本中访问它。
我不知道你是否能解决这个问题,但我希望我能让你理解代码的结构错误。关于我认识的任何新手我都看过这个。