一开始,我让变量timerow = 1。然后我循环我的程序5次。每次循环时,它都会创建一个表单,使用变量timerow的值提交给{{#each a}}
Hello, {{this}}!
{{#each (lookup ../b @index)}}
{{this}}
{{/each}}
{{/each}}
。
因此,当我点击值4时,我希望值4显示在test2.php。
然而,test2.php的值总是为1.请协助!
在test.php
test2.php
在test2.php
<?php
$timerow=1;
$x=1;
while($x <= 5){
echo "<form id=\"timeslot\" action=\"test2.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"timely\" value=\""; echo $timerow; echo "\"/>";
echo "<a style=\"text-decoration:none\" href=\"#\" onclick=\"document.getElementById('timeslot').submit();\">"; echo $timerow; echo "</a>";
echo "</form>";
$x++;
$timerow++;
}
?>
答案 0 :(得分:2)
每个表单都有相同的ID。这不起作用,因为id在文档中是唯一的。第一种形式“声称”它,而其他形式实际上并没有得到任何身份。
由于您使用(或滥用)带有脚本的链接来提交表单(通过其ID获取表单),因此每个提交链接都会有效地提交相同的表单。
你也可以解决这个问题,
$timerow
附加到id)并在脚本中使用该生成的id。答案 1 :(得分:0)
正如朋友所说,当你创建多个具有相同ID的HTML元素时,所以当你试图调用该ID时,你只会获得第一个元素。
对于您的示例,您可以这样做:
<?php
$timerow=1;
$x=1;
while($x <= 5){
echo "<form id=\"timeslot" . $timerow . "\" action=\"test2.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"timely\" value=\"". $timerow . "\"/>";
echo "<a style=\"text-decoration:none\" href=\"#\" onclick=\"document.getElementById('timeslot" . $timerow . "').submit();\">" . $timerow . "</a>";
echo "</form>";
$x++;
$timerow++;
}
?>
&#13;
答案 2 :(得分:0)
问题出在您的test.php
文件中,您为每个表单分配了相同的ID timeslot
,尝试发送如下所示的唯一ID:
<强> test.php的强>
<?php
$timerow=1;
$x=1;
while($x <= 5){
echo "<form id=\"timeslot$x\" action=\"test2.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"timely\" value=\""; echo $timerow; echo "\"/>";
echo "<a style=\"text-decoration:none\" href=\"#\" onclick=\"document.getElementById('timeslot$x').submit();\">"; echo $timerow; echo "</a>";
echo "</form>";
$x++;
$timerow++;
}
?>
答案 3 :(得分:0)
您正在使用id =“timeslot”循环表单,因此在所有提交操作中,它始终会获得第一个表单。 ID在HTMl文档中应该是唯一的。
尝试这样的事情:
<?php
$x=1;
while($x <= 5){
echo "<form action=\"test2.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"timely\" value=\""; echo $x; echo "\"/>";
echo "<a style=\"text-decoration:none\" href=\"#\" onclick=\"this.parentElement.submit();\">"; echo $x; echo "</a>";
echo "</form>";
$x++;
}
?>