If you're going to put in the literal string "zfield_" then you will need to use quotes (single quotes in this particular case) around it like so:
Code:
<select id="zfield_1" class="primary" onchange="ajaxReq(1, this.value, 'zfield_');" tabindex="1" name="Test Field">
<option...
And then you still have to update your javascript function in your external .js file to use this newly added parameter or else it will still choke with "preid is not defined."
As for the other questions...let's take this one step at a time.