Php 页面刷新后HTML表单数组消失
我有以下html:Php 页面刷新后HTML表单数组消失,php,jquery,arrays,ajax,forms,Php,Jquery,Arrays,Ajax,Forms,我有以下html: <html> <body> <div id='refresh'> <form id='form1' action='do.php' method='post'> <input type='checkbox' name='thetickets[]' value='1'> <input type='hidden' name='gender'> <input type='submit' value='
<html>
<body>
<div id='refresh'>
<form id='form1' action='do.php' method='post'>
<input type='checkbox' name='thetickets[]' value='1'>
<input type='hidden' name='gender'>
<input type='submit' value='Go'>
</form>
</div>
</body>
</html>
以及以下文件:
<script type="text/javascript">
$(document).ready(function() {// REFRESH DIV EVERY 5 SECONDS
interval = setTimeout(refreshpage, 5000);
function refreshpage() {
$('#refresh').load('page.php?&timer='+new Date().getTime()+' #refresh');
interval = setTimeout(refreshpage, 5000);
}
});
</script>
<script type="text/javascript"> /SUBMIT FORM
$(document).ready(function() {
var options = {
target: '',
dataType: 'html',
beforeSubmit: showRequest_reassign,
success: showResponse_reassign
};
$("#refresh").delegate("#form1,"submit",function () {
clearTimeout(interval);
$(this).ajaxSubmit(options);
return false;
});
});
function showRequest_reassign(formData, jqForm, options){
return true;
}
function showResponse_reassign(responseText, statusText, xhr, $form){
alert(responseText)
}
</script>
$(文档).ready(函数(){//每5秒刷新一次DIV
间隔=设置超时(刷新页面,5000);
函数刷新页面(){
$('#refresh').load('page.php?&timer='+newdate().getTime()+'#refresh');
间隔=设置超时(刷新页面,5000);
}
});
/提交表格
$(文档).ready(函数(){
变量选项={
目标:“”,
数据类型:“html”,
提交前:显示请求\u重新分配,
成功:showResponse\u重新分配
};
$(“#刷新”).delegate(#form1,“submit”,函数(){
清除超时(间隔);
$(此).ajaxSubmit(选项);
返回false;
});
});
函数showRequest\u重新分配(formData、jqForm、options){
返回true;
}
函数showResponse\u重新分配(responseText、statusText、xhr、$form){
警报(响应文本)
}
如果我在5秒钟之前提交表单,表单会正确提交,但是如果我等待5秒钟,页面会刷新,我会提交表单,但是输入类型“thetickets[]”不会提交。我检查开发人员工具、表单数据,甚至“thetickets[]”值都不存在……我不知道为什么
谢谢,我在这段代码中发现的唯一一件事(除了上面提到的打字错误)是,您的“thisurl”变量必须是一个php页面,并且在查询字符串中必须已经有其他变量
注意:如果您确实选中了该框,您将只能获得
$thetickets
数组。我想在这里发布您的代码和编辑,它可能会帮助您找到问题:
<html>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {// REFRESH DIV EVERY 5 SECONDS
interval = setTimeout(refreshpage, 5000);
function refreshpage() {
var thisurl = document.URL;
$('#refresh').load(thisurl + '?timer='+new Date().getTime()+' #refresh');
interval = setTimeout(refreshpage, 5000);
console.log("reloaded");
}
});
</script>
<script type="text/javascript"> //SUBMIT FORM
$(document).ready(function() {
var options = {
target: '',
dataType: 'html',
beforeSubmit: showRequest_reassign,
success: showResponse_reassign
};
$("#refresh").delegate("#form1","submit",function () {
clearTimeout(interval);
$(this).ajaxSubmit(options);
return false;
});
});
function showRequest_reassign(formData, jqForm, options){
return true;
}
function showResponse_reassign(responseText, statusText, xhr, $form){
alert(responseText)
}
</script>
<div id='refresh'>
<form id='form1' action='http://atlantis.cit.ie/displayvalues.php' method='post'>
<input type='checkbox' name='thetickets[]' value='1'>
<input type='hidden' name='gender'>
<input type='submit' value='Go'>
</form>
</div>
</body>
</html>
$(文档).ready(函数(){//每5秒刷新一次DIV
间隔=设置超时(刷新页面,5000);
函数刷新页面(){
var thisurl=document.URL;
$(“#刷新”).load(thisurl+”?计时器=“+新日期().getTime()+”#刷新”);
间隔=设置超时(刷新页面,5000);
控制台日志(“重新加载”);
}
});
//提交表格
$(文档).ready(函数(){
变量选项={
目标:“”,
数据类型:“html”,
提交前:显示请求\u重新分配,
成功:showResponse\u重新分配
};
$(“#刷新”).delegate(“#form1”,“submit”,函数(){
清除超时(间隔);
$(此).ajaxSubmit(选项);
返回false;
});
});
函数showRequest\u重新分配(formData、jqForm、options){
返回true;
}
函数showResponse\u重新分配(responseText、statusText、xhr、$form){
警报(响应文本)
}
如果您能向我提供有关您所收到错误的更多信息,我将非常乐意提供帮助!发现问题,我的原始代码的结构不正确
<div>
<form>
</div>
</form>
删除了div,现在表单可以正常工作。您的代码中有几个拼写错误,我假设这些错误没有出现在您的实际代码中,对吗?我修复了您代码中的拼写错误,并在我的计算机上运行了它,我可以很好地获取所有数据,无论我是否等待重新加载,也不确定当时发生了什么。我确实检查了框s