Well, you can't Redirect the user ( with PHP anyway ) after you have already sent output. BUT, you could use Output Buffering:
http://www.php.net/manual/en/ref.outcontrol.php
But in any case, that's not what I meant :-) I don't think you need to redirect the user anywhere. Do this instead:
------ form1.html --------
<form method="post" action="form2.php">
<inpug type="text" name="persons_name" value="" />
<select name="payment_type">
<option value="credit">Credit Card</option>
<option value="check">Check</option>
<option value="dd">DD Number</option>
</select>
<input type="hidden" value="whatever" name="hidden_value" />
<inpug type="submit" value="submit" />
</form>
--------- form2.php ( form handler ) -------
<?php
include ("header_file.php");
include ("menu_file.php");
if ($POST['payment_type'] == "credit") {
include ("credit_card_form.php");
} else if ($POST['payment_type'] == "check") {
include ("check_form.php");
} else {
include ("dd_form.php");
}
?>
Now, the form that comes up is different depending on which payment method is used, and whichever payment method form (credit_card_form.php, check_form.php, dd_form.php) is included gets full access to all of the posted values, so it can see the hidden value $_POST['hidden_value'] which is equal to "whatever"
Will that work? Otherwise I would say you need to otherwise use Output Buffering or a Javascript onLoad="submit.thisform" kinda deal. Ugly.