I am not using html, I only use php, with some html commands which are used with ''print''.
To reiterate, your PHP is outputting HTML. That HTML is what allows the browser to display a form and send a HTTP request to your form-processing script when the submit button is clicked. Therefore, in order to ensure that the browser functions correctly and predictably, you need to be sure that your PHP form script outputs valid HTML.
How about trying it using this HTML file in place of your PHP form? If it works OK, then we know the problem is in the PHP form script. If it does not work, then we know that the problem is in the dplsoldiers.php form-processing script, instead.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>
<!-- note that "size" is not a valid attribute for select, so has been removed -->
<form action='dplsoldiers.php' method='post'>
<fieldset>
<legend>Test</legend> <select name='class'>
<option>
Archers
</option>
<option>
Cavalry
</option>
<option>
Pikesman
</option>
<option>
Swordsman
</option>
</select>
<br>
<input type='submit' name='submit' value='Deploy'>
</fieldset>
</form>
</body>
</html>