无法在表单提交中存储会话变量
问题描述:
当我尝试将表单a提交给表单b并使用javascript window.open或者表单标记本身的action =“”属性将其加载到新页面时,关闭正确,但在新的页面加载SESSION变量不传递。但是,如果我拿走了window.open方法,提交表单并手动加载我的浏览器中的新页面,SESSION变量在窗体b的新页面上的输入字段中确实出现...无法在表单提交中存储会话变量
I想知道这与“回报错误”有什么关系?部分onsubmit函数我运行在form上,或者如果在表单提交和新的页面加载时,它不会在SESSION存储它们并将新页面加载到窗口之前设置SESSION值......它必须是那两个匪徒。如果我不做一个页面重定向,它的工作原理,所以我相信它实际上不是在提交后加载新页面时存储SESSION变量......我如何正确和成功地将SESSION存储在新页面加载中,以便加载正确地在form b上的新页面中?
索引文件(FORM A)
<?php
session_start();
if(isset($_POST['submit'])) {
$_SESSION['cable_no'] = $_POST['cable_no'];
$_SESSION['co_name'] = $_POST['co_name'];
$_SESSION['prepping_team'] = $_POST['prepping_team'];
$_SESSION['section_no'] = $_POST['section_no'];
$_SESSION['tech_name_a'] = $_POST['tech_name_a'];
}
?>
<header>
<script type="text/javascript" language="javascript" src="/jquery/js/jquery-1.9.1.js"> </script>
<script type="text/javascript" language="javascript" src="js/scripts.js"></script>
<link href="css/style.css" type="text/css" rel="stylesheet" />
</header>
<form method="post" onsubmit="uploaddata(); return false;">
HTML CODE
<input type="submit" id="submit" name="submit" value="Continue" />
</form>
JS文件
function uploaddata() {
//Read all of the data from the page
for (eID in prepform) {
prepform[eID] = document.getElementById(eID).value;
}
//Send to database upload function and verify IF checkboxes are checked
if(document.getElementById("a11").checked && document.getElementById("b11").checked && document.getElementById("c11").checked && document.getElementById("a12").checked && document.getElementById("b12").checked && document.getElementById("c12").checked) {
upload_prepform();
}else{
alert("Please verify that you have checked the known check boxes.")
}
}
function upload_prepform() {
$.ajax({
type: 'POST',
url: './php/upload_prepform.php',
data: prepform,
async: false,
dataType: 'text',
success: function() {
alert("Thank you. Your Prep form has been submitted.");
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error... " + textStatus + "\n" + errorThrown);
},
complete: function() {
window.location.replace("http://dev1.rs.idmyasset.com/gp21-dev/prep_b/");
alert("Redirecting...");
}
});
};
答
必须启动文件,
<?php
session_start();
?>
HTML代码
我之后,你不能用它编辑我的帖子...我在服务器上的文件中正确,我正确在这篇文章中错误地指出了它。此外,除非实际上必须在表单提交中加载新页面,否则它全部正常工作,但无论如何感谢您的快速回复。 – jflay 2013-03-19 16:06:52
返回false似乎是目前的罪魁祸首...有没有更好的方法来运行函数uploaddata();所以它正确启动? – jflay 2013-03-19 16:17:26
不需要'返回false'。你可以删除它。 – 2013-03-19 16:24:14