简体   繁体   中英

created input tag in php for loop and get value

I want to create limit input tag with php for loop an get inputs values. My sample code is this:

<?php
   $limit = 10;
   for ($i=1; $i<=$limit; $i++) { ?>
   <input name="<?php echo $i ?>" type="text" /><br>

<?php } ?>

Is my code correct? How can I get input values?

Looks alright but I would use an array as the input name. For example:

<?php
   $limit = 10;
   for ($i=1; $i<=$limit; $i++) {
?>
   <input name="number[<?php echo $i; ?>]" type="text" /><br>

<?php 
   } 
?>

That way in the back end you can just loop through the number array like so.

foreach ($_POST['number'] as $key => $value) {
    // Do stuff
}

Your code should render 10 html input fields with name 1, 2, 3, ... 10 correctly

To get input values, wrap your input fields in a form element with an action pointing to the php script in which you want to read the values (eg action="myscript.php").

(You should add a input type="submit" to have a way to submit the form. I assume you know HTML good enough to create a simple form.)

The script invoked by submitting the form (eg myscript.php) will now be able to read the values using the $_GET array. See http://php.net/manual/de/reserved.variables.get.php

You could print the values like so:

<?php
    for($i=1;$i<=10; $i++) {
        echo $i . ' : '. $_GET[$i];
    }
?>

Edit: As @David Jones mentioned it would be better to use an array as input name

You can try my script.

<?php
$limit = 10;
?>

<form method="post">
    <?php
    for ($i = 1; $i <= $limit; $i++) {
        ?>

        <input name="anything[]" type="text" /><br>

    <?php } ?>
    <input type="hidden" name="op" value="sent" />
    <input type="submit"  value="submit" />
</form>

<?php
if (!empty($_POST["op"])) {

    for ($i = 1; $i <= $limit; $i++) {
        if (strlen($_POST["anything"][$i]) !== 0) {
            ?>
            <p>The value of the <?php echo $i; ?> text field is: <?php echo $_POST["anything"][$i]; ?>
                <?php
            } else {
                ?>
            <p><?php echo $i; ?> was not set.</p>
            <?php
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM