2017-05-02 3 views
3

많은 입력 유형 번호를 반복 할 수 있고 0보다 큰 값만 인쇄 할 수있는 방법이 있습니까?PHP/HTML 입력 유형 번호

의 내가 10

 <form action="displayInfo.php" method="post"> 


    <table cellpadding="6"> 
     <tr> 
     <th>Description</th> 
     <th>Price</th> 
     <th>Weight</th> 
     <th>Image</th> 
     <th>Quantity</th> 
     </tr> 
    <!-- PHP LANGUAGE --> 
    <?PHP 
     $sql = "SELECT * FROM parts"; 
     $q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorIndo())); 

     while($row = $q->fetch(PDO::FETCH_ASSOC)) 
     { 

      echo '<tr>' . 
       '<td>' . $row['description'] . '</td>' . 
       '<td>' . $row['price'] . '</td>' . 
       '<td>' . $row['weight'] . '</td>' . 
       '<td> <img src="' . $row[pictureURL] .'" alt="' . $row[number] . '" style="width:50px;height:50px;">' . 
       '<td> <input type="number" name = "' . $row[number] ." id= "'. $row[number] . '" value="0">' . 
       '</td>' . '</tr>'; 
     } 
     echo "</table>"; 

    ?> 
    </table> <br> 



    <input type="button" id="submit" value="Submit" /> 
    </form> 

그래서 그들은 동적으로 값 1,2,3, ... (10)는이 ID가 생성됩니다 있다고 가정 해 봅시다. 값은 사용자 입력을 통해 업데이트됩니다.

어쨌든 0보다 큰 사용자가 입력 한 값에 대한 제출 버튼에 의해 전달 된 데이터를 잡을 수 있습니까? 그렇다면 어떻게 설명이나 심지어 $ row [숫자]와 관련된 값을 전달할 수 있습니까? 입력 유형 번호 인 id = 코드에 표시된 $ row [number]. 가장 간단한 방법은 PHP 기능을 사용 아마도

+0

어떤 이유로 당신이 0 값이되고 싶지 않아 게시 된? –

+0

표시 목적으로 입력 유형에 값이 저장되어 있습니다. 따라서 숫자가 셀에 이상적으로 들어갈 것임을 사용자에게 보여줍니다. – osinp

+1

먼저 name 속성이없는 폼 컨트롤은 서버로 전송되지 않습니다. –

답변

3

, 즉 How do I create arrays in a HTML <form>?

에서 설명, 당신은 PHP 다음 배열 및 루프 데이터로 변환하기 위해, 공통 접두어를 사용 대괄호를 추가 할 양식 컨트롤의 이름을 변경 다른 배열로 :

'<td> <input type="number" name = "row[' . $row[number] . ']" id= "'. $row[number] . '" value="0">' . 

는 또한 누락 된 견적을 고정했지만 나는 실제 코드에없는 가정.

다음

:

foreach ($_POST['row'] as $number => $value) { 
} 

을 그리고 그것은 배열이기 때문에 당신은 보통 케이크, 예를 사용할 수 있습니다

$rows = array_filter($_POST['row'], function($val){ 
    return is_numeric($val) && $val>10; 
}); 

Demo

+0

내가 물어 본다면, "Then :"아래의 코드는 양식이 들어가는 파일에 있지만, 내가 모은 것에서 전달 된 행 배열을 얻고 있고 그 안에있는 번호를 사용하고 있습니다. 배열을 만들고이를 value라는 새 변수와 동일하게 설정하십시오. 이제 행이라는 새로운 변수를 만들고 배열 행을 통해 전달 된 변수 val을 사용하여 val을 반환합니다.이 변수가 숫자이고 10보다 큰 경우 val을 반환합니다. $ val은 $ value가되어야합니까? 도와 주셔서 감사합니다. 나는 아직도 초심자이므로 나는 정확히 무슨 일이 벌어지고 있는지 이해하려고 노력하고있다. – osinp

+0

그들은 독립적 인 제안이므로 * 두 * 할 필요가 없습니다. 'foreach'는 PHP 흐름 제어 구조입니다. [매뉴얼] (http://php.net/foreach)에서 읽을 수 있습니다. 또한, [array] (http://php.net/array)가 무엇인지 이해하십시오. –