2014-06-20 4 views
0

안녕하세요, 저는 자신의 인보이스를 만드는 시스템을 만들고 인쇄하기 때문에 아래 코드를 사용하여 입력 한 기사의 수에 따라 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 

URL을 이런 식으로 뭔가를 얻을 수 있지만 어떤 성공도 없었다

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

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

각 루프의 수를 변경하는 get 메소드를 사용할 수있는 방법이 있습니까 ??

이없는 경우, 어떻게 사용자 입력에 사전에

덕분에 .. 이미 언급했듯이

+3

문자열 보간은 작은 따옴표가 아닌 큰 따옴표로 작동합니다. – mario

+0

'$ _GET [ 'precio'. $ cont]'$ cont가 var 일 때 숫자가 반복됩니다. – vico

답변

1

을 따라, 그들은 다른 때마다 알고, 모든 변수를 얻을 수 있습니다, 당신은있어 또한 ..

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

당신이 두 번 사용해야하는 경우에 대한 작은 따옴표를 사용하여, 당신은 실제로 카운트 값을 추가하고 통해 반복하기보다는 쿼리 데이터로 직접 배열에 전달할 수 있습니다. 그냥 그래서 당신을

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

을 demostrate하는

$precioArr = $_GET['precio']; 

을 제출하면 단순히 name='precio[]'

name='precio$cont'을 변경 한

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

주 당신은 그 배열로이 액세스 할 수 있습니다 언급 한 요구 사항에 실제로 이것을 사용할 수 있습니다. 가없는 경우

는 어떻게이이 코드

<?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의 Y 쿼리, 당신이 얻을하려는 결과는 다음과 같습니다

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

시도 님의

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

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

차이 원래 :이 'precio' 리터럴 문자열에 변수 $cont의 값을 CONCAT합니다 'precio'. $cont .

작성한 내용 ('precio$cont')은 항상 그대로있는 문자열입니다. 변수는 사용되지 않습니다.

+0

이 게시물은 코드 일 뿐이므로 자동으로 낮은 품질의 플래그가 지정됩니다. 문제 해결 방법을 설명하는 텍스트를 추가하여 확장 해 주시겠습니까? – gung