Not the most elegant solution, but it will work. You will use the POST vars to keep track rather then the GET vars, that way you can keep the value of each field with out having to muck with the query string in a link.
<?
//start form
echo "<form name=\"form1\" action=\"\" method=\"post\">\n";
//check if the add field button was clicked.
if(isset($_POST[addField])){
$addField = count($_POST[value]);
$addField++;
$value = $_POST[value];
}
//this is a default page load, no user input.
if(!isset($addField)){
echo "<input name=\"value[]\" value=\"\"> <input type=\"Submit\" name=\"addField\" value=\"Add\">\n";
}else{
//the user has selected to add a field.
//loop though our addFields and put in form input for each.
for($i = 0; $i < $addField; $i++){
//see if this is the last input, if it is add the add button back to it..
if($i+1 == $addField){
echo "<input name=\"value[]\" value=\"$value[$i]\"><input type=\"Submit\" name=\"addField\" value=\"Add\">\n";
}else{
echo "<input name=\"value[]\" value=\"$value[$i]\"><br>\n";
}
}
}
?>
Let me know if this doesn't make sense, but it's straightforward and should be easy to edit your script to work like this.