Well, since you're coding with the assumption that javascript support is turned on, you might as well use JS to write to a hidden input that contains what you need, then ignore the indoividual results, only passing the hidden field's value to PHP.
On the other hand, if you do indeed need the individual results but cant find a way of getting name="tech[]" to work with JS, then discard the JS and sum using PHP.
If the total cost exceeds the money the player has on hand, dont proceed with the update and inform the player.
Whether or not you are using JS to sum, you should have such a check anyway, so it doesnt really matter.