坚持在表单外部和内部创建的GET变量

时间:2011-04-19 19:50:02

标签: php html forms get

假设我有一个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中。

有办法吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

因此,简单的方法是使用

设置链接
<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 var

<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.)然后,创建一个名为yes,processForm()的JS方法,该方法将决定是否设置myVal。

function processForm() {
 if (JOHNNY != ''){
   document.getElementById('myVar').value=JOHNNY;
 }
}

这样,你的myVar值只会在之前收到它时传播(这意味着,第一次发送它时,它会持续存在)。不知何故,我会使用$ _SESSION来处理请求之间的事情!事实上,它更安全,更容易! :)

希望它有所帮助。