我现在处于一种棘手的情况,因为我的客户坚持保留iframe功能,现在想要一个页面,在提交信息后,在提交之前审查并查看所述信息,如果不对,请返回并重新 - 提交更改。
基本上,在你感到困惑之前,我只想使用表格的动作和帖子方法,使用按钮OUTSIDE iframe ......
我在iframe外部使用Codiqa的按钮来定位内部框架的js函数,所以当我调用此评论功能时它会重定向到页面,但是,新页面不显示我看似通过它传递给它的信息阿贾克斯。有人可以告诉我为什么它不起作用? HTML和all都无关紧要,因为我只是传递输入ID和ajax数据(eID收集并遍历html输入ID),这完全需要我可能缺少的特殊JS函数。当按下Codiqa按钮时,它在JS中调用“reviewdata()”函数:
JS
//UPLOAD DATA
//Global variables
var extractform = {
'cable_no' : "",
'section_no' : "",
'extract_ft' : "",
'cable_status' : "",
'conduit_status' : "",
'extract_date' : "",
'extraction_team' : ""
}
function reviewdata() {
//Read all of the data from the page
for (eID in extractform) {
extractform[eID] = document.getElementById(eID).value;
}
review_extractform();
}
function review_extractform() {
$.ajax({
type: 'POST',
url: './php/review.php',
data: extractform,
async: false,
dataType: 'text',
success: function() {
},
complete: function() {
window.location.assign("./extraction/php/review.php?");
}
});
};
然后AJAX通过这个重定向页面
PHP
//Assign passed parameters
$cable_no = $_POST['cable_no'];
$section_no = $_POST['section_no'];
$extract_ft = $_POST['extract_ft'];
$cable_status = $_POST['cable_status'];
$conduit_status = $_POST['conduit_status'];
$extract_date = $_POST['extract_date'];
$extraction_team = $_POST['extraction_team'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Sample Title</title>
</head>
<body>
<table align="center" width="100%">
<tr>
<th>Cable Type</th>
<th>Section Number</th>
<th>Extracted Footage</th>
<th>Cable Status</th>
<th>Conduit Status</th>
<th>Extract Date</th>
<th>Extraction Team</th>
</tr>
<tr style="text-align:center;">
<td><?php echo $cable_no; ?></td>
<td><?php echo $section_no; ?></td>
<td><?php echo $extract_ft; ?></td>
<td><?php echo $cable_status; ?></td>
<td><?php echo $conduit_status; ?></td>
<td><?php echo $extract_date; ?></td>
<td><?php echo $extraction_team; ?></td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:2)
我不确定AJAX方面,也不确定你要做什么。
在第二个代码部分,您将创建新的php变量$cable_no = $_POST['cable_no'];
,如果帖子来自表单操作的上一页,则该变量应该用于分配值。
我总是用相同的名称和id命名表单的每个字段(我忘记了它使用的是哪一个),即:
Name: <input type="text" name="name" id="name">
如果您需要保存甚至不同页面和刷新的值,您可能希望使用cookie或会话(cookie),cookie将信息存储在用户计算机上,会话cookie使用令牌并将数据存储在服务器上。 (我认为会话cookie的默认时间为90分钟。)
您也可以发布实际的表单页面。它可能有助于解决问题。我没有JSON位的必要知识或将jquery(ajax)与php结合使用。
添加了注释:您还应该使用HTML5 doctype <!DOCTYPE html>
开始转换到HTML5(这更容易记住)
答案 1 :(得分:1)
我确信这将是使用ajax的更快的解决方案。 只需将$ _POST更改为$ _GET
即可function review_extractform() {
var url = "./extraction/php/review.php?";
//var queryString = extractform.join();
var queryString = $('iframe_id').serialize();
document.getElementId('iframe_id').src = url + queryString;
}
编辑: 添加.serialize()