PHP While Loop +传递值

时间:2017-09-14 12:04:16

标签: php loops

一开始,我让变量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++;
}
?>

4 个答案:

答案 0 :(得分:2)

每个表单都有相同的ID。这不起作用,因为id在文档中是唯一的。第一种形式“声称”它,而其他形式实际上并没有得到任何身份。

由于您使用(或滥用)带有脚本的链接来提交表单(通过其ID获取表单),因此每个提交链接都会有效地提交相同的表单。

你也可以解决这个问题,

  1. 为每个表单提供一个唯一的ID(例如,通过将$timerow附加到id)并在脚本中使用该生成的id。
  2. 使用普通的提交按钮。这将提交它所在的表格,没有任何脚本或任何ID需要。如果您愿意,可以使用CSS设置按钮样式以模仿链接。我认为这是更好的选择。

答案 1 :(得分:0)

正如朋友所说,当你创建多​​个具有相同ID的HTML元素时,所以当你试图调用该ID时,你只会获得第一个元素。

对于您的示例,您可以这样做:

&#13;
&#13;
<?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;
&#13;
&#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++;
 }
?>