user2617730
user2617730

Reputation: 39

Get the ids and loop through post data

I post a form with the same input names+id at the end like that:

<input type="text" name="machine_1">
<input type="text" name="machine_11">
<input type="text" name="machine_23">

How loop through on each of them and get the id's in the loop?

I tried this way, but it will loop a lot without any data and what happens if there is more thank 100 id?

for($i=0; $i<100; $i++){

$_POST["machine"]=$_POST["machine_".$i];

$id=$i;

}

Upvotes: 1

Views: 158

Answers (4)

anon
anon

Reputation:

In your code, you have:

$_POST["machine"]=$_POST["machine_".$i];

That's not the correct way. You want to store the value of $_POST["machine_".$i] to $id and then use it below.

This is probably what you need:

for($i=1; $i<100; $i++){
    $id = $_POST["machine_".$i]; 
    echo $id;
}

And if there are more than 100 elements, and you don't know the number of inputs, then you can use a foreach loop, as below:

$i = 1; // counter variable
foreach ($_POST as $key => $input) {
    if($key == "machine_".$i) {
        $id = $input; // or simply 'echo $input'
        echo $id;
    }
    $i++; // increment counter
}

Upvotes: 0

rmirabelle
rmirabelle

Reputation: 6446

POST is an associate array, so you can loop through everything that's been posted like this:

//$k contains the id
//$v contains the submitted value
foreach($_POST as $k => $v) {
    //test if id contains 'machine'
    if(stristr($k, 'machine')) {
        echo $v;
    }

}

Upvotes: 1

Let me see
Let me see

Reputation: 5094

$_POST["machine"]=$_POST["machine_".$i];

here $_POST['machine'] represents noting..how can you assign a value to $_POST['machine']..you havent passed any element having name machine while submitting the form..so first of all you need to check it bro

Upvotes: 0

mti2935
mti2935

Reputation: 12027

You can do this using a foreach loop, like so:

foreach($_POST as $key => $value) {
  echo "POST parameter '$key' has '$value';
}

Upvotes: 0

Related Questions