Clara Agius
Clara Agius

Reputation: 11

How can I populate the fields of a PHP form automatically when the field values are in the url?

I have a have in PHP and I have common fields such as 'Name' and 'Surname'.

Now when the user visits the page e.g. http://www.example.com/form.php the form fields 'Name' and 'Surname' are empty.

I would like to now have a link similar to this http://www.example.com/form.php?name=John

so that when the client hits the link the PHP form will now have the name field already filled with 'John' in it.

I know this can be done in HTML but how can I do it in PHP?

Just to let to know I do not own the PHP form - I just want a link from my website to fill the PHP form (which I do not have control over).

Thanks in advance.

Upvotes: 0

Views: 206

Answers (7)

Cameron
Cameron

Reputation: 1725

It looks like everyone's answers here assume you are building the form yourself, which doesn't appear to be the case based on your question.

The thing that you want to do may or may not be possible. If the form accepts certain kinds of parameters in certain ways, you may be able to hook in to that functionality and set it up so that when someone clicks a link on your page, that information gets passed to the other page.

One way forms can accept this information is in the form of a "get" request. With this method, values are passed as part of the url, as in your example: http://www.example.com/form.php?name=John. Assuming your page has access to a php variable called $name, you can create a link from your code to build this kind of url like this:

<a href="http://www.example.com/form.php?name=<?php echo $name; ?>">Sign up!</a>

If the page does not accept get parameters in this way (and I have a hard time imagining that they would), you may have to try other techniques to send along the information (assuming that they will even accept it!). The two other ways I imagine you could do this are by passing the value with "post" or creating a cookie for the page. If you tell us what page you are trying to set up this behavior on, we might be able to examine it and give you a better answer.

Upvotes: 0

Chris Pynegar
Chris Pynegar

Reputation: 183

You can use the $_GET superglobal, so your input could look like this:

<input type="text" name="name" value="<?php if(isset($_GET['name'])) { echo $_GET['name']; } ?>" />

The $_REQUEST superglobal does a similar thing but I would just use $_GET.

Upvotes: 0

Bono
Bono

Reputation: 4869

Can be done using $_GET

An associative array of variables passed to the current script via the URL parameters.

e.g.:

<? php
if(isset($_GET['name']))
{
    $test = $_GET['name'];
}
?>

<html>
<body>
    <form>
        <input type="text" name="test" value="<?php if(isset($test)){echo "$test";}?>"/>
    </form>
</body>
</html>

Note: code isnt tested or anything.. Also, there are possible security risks with getting values from your URL (can be considered user input), so make sure you are aware of that and how to prevent

Upvotes: 1

m c
m c

Reputation: 1104

You can retrive this information by the $_GET["name"] function, or $_REQUEST["name"].

Reserver variables

Be carefull with those operations, you might have validation a/o security problem.

Note: if you are not sure that the "name" variable is set or not, you have to use also the isset function to test it.

Upvotes: 0

Manigandan Arjunan
Manigandan Arjunan

Reputation: 2265

You can use the get method in php to get the name and make use of it

Upvotes: 0

Aurimas Ličkus
Aurimas Ličkus

Reputation: 10074

By using $_GET superglobal

 <input name="name" value="<?php echo !empty($_GET['name']) ? $_GET['name'] : '';?>" />
 <input name="surname" value="<?php echo !empty($_GET['surname']) ? $_GET['surname'] : '';?>" />

Upvotes: 0

Salepate
Salepate

Reputation: 327

You could store that value and then when you're about to output the input fields you just pass along the stored value.

$name = $_GET['name'];

// ... later on
echo '<input type="text" value="'.$name.'"/>';

Upvotes: 0

Related Questions