【发布时间】:2011-10-20 16:09:30
【问题描述】:
我有一个相当大的表单(changeuserjudge.php),我已经从一个单独的页面加载到一个对话框中,现在提交表单时,提交页面会在浏览器窗口中打开(而不是在打开的对话框中)。我试图弄清楚一旦按下提交按钮(并提交 POST 变量),我如何将处理表单(changeuserjudgeprocess.php)加载到同一个对话框中。我试图避免在同一页面上进行处理。
对话脚本:
<script type="text/javascript">
$(document).ready(function(){
$('#click').click(function(){
$("#test").load('changeuserjudge.php?user=tim').dialog({modal:true});
$( "#test" ).dialog( "option", "minWidth", 330 );
$( "#test" ).dialog( "option", "position", 'top' );
});
});
</script>
(测试只是空白页上的一个div)
提交表格:
<body>
<div id="judgesMenu">
<form action="changeuserjudgeprocess.php" method="POST">
<?php
$selectedJudges = array();
if(isset($_GET['user'])){
echo '<center><b>User: '.ucfirst($_GET['user']).'</b></center><br />';
}
echo '<center><input type="checkbox" id="checkall">Select All <input type="checkbox" id="checknone">Select None</center><br />';
$listUserJudges = getUserJudges(userNametoID($_GET['user']));
$arr = array();
$num = count($listUserJudges);
if ($num>1){
foreach ($listUserJudges as $x){
array_push($arr, judgeIDtoName($x));
}
}
else {
array_push($arr, $listUserJudges);
}
echo '<ul>';
$list = getActiveJudges();
foreach ($list as $x){
$found = 0;
if (count($arr)>1){
foreach ($arr as $y){
if ($x == $y){
$found = 1;
break;
}
}
}
else {
if (judgeNametoID($x) == $arr[0]){
$found = 1;
}
}
if ($found==1){
echo '<li>';
array_push($selectedJudges, judgeNametoID($x));
echo '<input type="checkbox" checked="checked" name="checkbox[]" value="'.$x.'" />'.$x.'<br/>';
echo '</li>';
}
else {
echo '<li>';
echo '<input type="checkbox" name="checkbox[]" value="'.$x.'" />'.$x.'<br/>';
echo '</li>';
}
}
echo '</ul>';
$_SESSION['selectedJudges']=$selectedJudges;
?>
<input type="hidden" name="user" value="<?php echo userNametoID($_GET['user']); ?>" />
<br/>
<p><center><input type="Submit" value="Save Changes" id="sub"/></center></p></div>
</form></body>
【问题讨论】: