while循环中的$ _GET方法

时间:2014-06-20 18:30:28

标签: php forms get

您好我正在尝试创建一个系统来制作我自己的发票并打印它们,所以我使用while循环创建输入,具体取决于我输入的文章数量,使用下面的代码

<?php
$cont=1;
$numero = $_REQUEST['numeroa'];

while($cont<=$numero) {

  echo $cont;
  echo "       <input class='Descripcion$cont' placeholder='Descripcion :' />";
  echo "       <input class='Precio' name='precio$cont' placeholder='Precio :' onkeyup='AddInputs()' /><br>";

  $cont++;
  } 
  echo "<textarea name='comment' >Escriba sus comentarios....</textarea>"; 
  session_start();
  $_SESSION['cont']=$cont;
   ?>

这个将帖子信息发送到另一个php页面,所以我在网址上得到这样的内容

http://localhost/pruebas/facturapdf.php?precio1=1&precio2=2&precio3=3&precio4=4&precio5=5

我尝试使用此代码获取变量,但我没有成功

session_start();
$contp=$_SESSION['cont'];
while($cont<=$contp) {

  $articulos[$cont]=$_GET['precio$cont'];
  echo $articulos[$cont];
  $cont++;
} 

有没有办法可以使用get方法更改每个循环的数字?

如果没有,我怎样才能获得所有变量,知道它们每次都不同,具体取决于用户输入

提前感谢..

2 个答案:

答案 0 :(得分:1)

如前所述,当你应该使用double时,你会使用单引号..

$articulos[$cont] = $_GET["precio$cont"];

此外,您实际上可以直接将数组作为查询数据传入,而不是附加计数值并循环遍历它们。

echo "       <input class='Descripcion' placeholder='Descripcion :' />";
echo "       <input class='Precio' name='precio[]' placeholder='Precio :' onkeyup='AddInputs()' /><br>";

请注意,我只是将name='precio$cont'更改为name='precio[]'

然后,您可以在提交时将其作为数组进行访问

$precioArr = $_GET['precio'];

只是要说明

for($i = 0; $i < count($precioArr); $i++) {
    echo $precioArr[$i];
}

所以你实际上可以将它用于你提到的要求

  

如果没有,我怎样才能获得所有变量,知道它们每次都不同,具体取决于用户输入

这可以使用此代码

来演示
<?php

    echo "query data:<br>";
    print_r($_GET['array']);

    echo "<br>";

    echo "query keys:<br>";
    print_r(array_keys($_GET['array']));

?>

所以,如果你有一个这样的表格:

<form action="demo.php" method="GET">
    <input name="array[2]" type="text" value="11">
    <input name="array[4]" type="text" value="11">
    <input name="submit" type="submit" value="Submit">
</form>

这会传递?array[2]=11&array[4]=11的查询查询,您得到的结果是:

query data:
Array ( [2] => 11 [4] => 11 ) 
query keys:
Array ( [0] => 2 [1] => 4 )

答案 1 :(得分:0)

尝试:

<?php 
session_start();
$contp=$_SESSION['cont'];
while($cont<=$contp) {

  $articulos[$cont]=$_GET['precio'. $cont];
  echo $articulos[$cont];
  $cont++;
} 

与原版的区别:'precio'. $cont 这会将变量$cont的值连接到字符串文字'precio'

你写的内容('precio$cont')将始终是它的文字字符串。没有使用变量。