Well of course it will take two clicks....
Look at your form and how it works. First, the URL you go to is ads2.php which shows a form. The action of the form is ads2.php?area=&type=. Since $_POST isn't set, there is nothing in the $type and $area variables, so the action of the form looks like the text in blue.
Once you click submit once, the $_POST array is set, so after the first submission the action of the form becomes ads2.php?area=something&type=somethingelse. The URL that you are at now is then the blue text from above. Once you click submit again, the action of the form is finally what you expect it to be and as such, the URL is now what you expect it to be.
To fix this, there are two ways to do it depending upon what you want.
Use a different method
[indent]You could change the method of the form from post to get which would put all form elements inside the URL. So after submitting the URL would look like: ads2.php?type=something&area=somethingelse&formsubmit=1.[/indent]
Use an intermediary script
[indent]You could use a processing script which receives the posted information from the form and redirects to the URL you want. It would look something like:
<?php
$url = 'http://www.domain.tld';
// If the form isn't posted, redirect to the form
if(!isset($_POST['formsubmit']))
header('Location: '.$url.'/ads2.php');
// Redirect to the correct location based on form input
$type = $_POST['type'];
$area = $_POST['area'];
$url .= '/ads2.php?type='.$type.'&area='.$area;
header('Location: '.$url);
[/indent]
Those are two options. It all depends on what you want revealed through the URL.