2017-05-02 29 views
3

多くの入力タイプ番号で繰り返しを取得でき、0より大きい値を持つ値だけを出力する方法はありますか?PHP/HTML入力タイプ番号

はのは、彼らが動的に値1,2,3、... 10を持っているIDを使用して作成されて、私は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> 

があるとしましょう。 この値は、ユーザー入力によって更新されます。

ユーザが入力した値が0より大きい場合、送信ボタンによって渡されたデータをキャッチできますか?もしそうなら、私はどのようにして記述や$ row [number]もそれに関連する値と共に渡すでしょう。入力タイプ番号のid =コードに表示される$ row [数値]。

+0

どのような理由のためにあなたは0の値ビーイングをしたくありません投稿された? –

+0

表示目的のためだけに、入力タイプに値が格納されています。それで、それは、数字が理想的にはセルに入ることをユーザーに示します。 – osinp

+1

まず、 'name'属性を持たないフォームコントロールはサーバーに送られません。 –

答えて

3

最も簡単な方法は、PHPの機能を使用するには、おそらくですが、要するに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という新しい変数に設定します。今度はrowsという名前の新しい変数を作成し、渡された変数valを持つ関数を作成して配列の行に入ります。これは、数値であればvalを返し、10より大きい値です。$ valは$ valueであると考えられますか?助けてくれてありがとう。私はまだ初心者ですので、私はちょうど何が起こっているのか理解しようとしています。 – osinp

+0

彼らは独立した提案です、あなたは*両方*する必要はありません。 'foreach'はPHPのフロー制御構造です。[manual](http://php.net/foreach)で読むことができます。また、[配列](http://php.net/array)が何であるかを理解してください。 –

関連する問題