假设我有一个HTML页面"myPage.php",它的表单使用GET方法并调用自己:
<form name="myForm" action="myPage.php" method="get">
<input type="text" name="input1" />
<input type="text" name="input2" />
.
.
.
<input type="submit" />
</form>
而且,在这个页面和表单之外,我有一个锚也调用页面本身,但与一个GET变量"myVar"添加(一个GET变量不是表单的变量之一):
<a href="myPage.php?myVar=100"></a>
现在…我希望所有的变量都能被持久化,无论表单是被提交还是链接被按下。
例如,如果用户按下链接,URL将获得'myVar=100' +表单变量(就好像表单也是在按下链接的同时提交的),反之亦然——如果用户提交了表单,URL将获得表单的变量以及'myVar ',如果它确实在URL中。
有办法吗?
谢谢你
因此,简单的方法是用
设置链接<a href="#" onClick="document.form_name.submit();">Something</a>
同时,将窗体中的动作更改为
<form action"myPage.php?var=100" method="get" name="form_name" id="form_name">
...
,它们将发送相同的表单。不管怎样,表单输入都是这样或那样处理的?
编辑:好吧,如果它取决于链接点击,那么:
1)。接收PHP中的myVar
$myCurrval = $GET['myVar'];
2)。赋值给JS变量
<script type="text/javascript">
var JOHNNY = <?php echo $myCurrval; ?>
</script>
2)。添加一个隐藏输入
<input type="hidden" id="myVar" name="myVar" value="" />
2)。并将链接更改为
<a href="#" onClick="processForm();">Something</a>
3)。然后,创建一个名为processForm()的JS方法,它将决定是否设置myVal。
function processForm() {
if (JOHNNY != ''){
document.getElementById('myVar').value=JOHNNY;
}
}
这样,你的myVar值只有在之前被接收时才会传播(这意味着,你第一次发送它时,它会持续存在)。不知何故,我将使用$_SESSION来保存请求之间的内容!事实上,它更安全,更容易!!:)
希望能有所帮助。