Realmente no se entiende del todo lo que necesitas...
Si quieres que el formulario se envíe pero no pierda los datos lo que generalmente se hace es un formulario que llame a la misma página donde está el formulario.
Luego en los campos del formulario compruebas si estás recibiendo datos y los usas para componer los value
.
<input type="text" name="cantidad" value="<?= isset($_POST['cantidad']) ? $_POST['cantidad'] : '' ?>">
Así cuando se recarga el formulario, si se están enviando los datos por POST, los campos aparecerán de nuevo con los value
que tenían anteriormente.
La otra opción que se suele hacer ya requiere algo de Javascript, usando Ajax para el envío de los datos, que produce que la página no se recargue, por lo que los datos permancerán en los campos de formulario aunque envíes el formulario y lo proceses con PHP.