在同一页面PHP上有多个$ _POST

I have a question.

Currently this form will be dynamically generated.

Example,

<form method="POST">
<input type="text" name="location" id="location1" />
<input type="submit" value="Submit!" />

<input type="text" name="location" id="location2" />
<input type="submit" value="Submit!" />

<input type="text" name="location" id="location3" />
<input type="submit" value="Submit!" />

<input type="text" name="location" id="location4" />
<input type="submit" value="Submit!" />
</form>

So whenever i press submit, it will take last value of form only. How do i make it take all $_POST?

Thank you.

Give each input its own name or use:

<input type="text" name="location[]" id="location1" />

Then PHP will treat it like an array.

You could give each field a unique name: location1, location2....

Alternatively, you could build an array.

To do that, add a [] to each element's name:

<input type="text" name="location[]" id="location1" />

this will give you an array in $_POST["location"].

Don't forget that before using the data (e.g. in a database query or page output) you will need to sanitize each array element separately (using mysql_real_escape_string() or htmlspecialchars() or whatever is needed in your situation.)

Either give each input a different name attribute, for example location1, location2, location3 and location4 then access with $_POST['location1'] $_POST['location2'] etc.

Alternatively (and probably preferred if this form is being generated 'dynamically'), change the name attribute for each input to location[] then access the values entered as an array in PHP. For example...

HTML

<form method="post">
    <input type="text" name="location[]" id="location1" />
    <input type="submit" value="Submit!" />

    <input type="text" name="location[]" id="location2" />
    <input type="submit" value="Submit!" />

    <input type="text" name="location[]" id="location3" />
    <input type="submit" value="Submit!" />

    <input type="text" name="location[]" id="location4" />
    <input type="submit" value="Submit!" />
</form>

PHP

print_r($_POST['location']);