Regarding # 2, that was what I meant.
Regarding the rest... Did you clean up the code, and quote your attributes?
For testing purposes, change the positions of the LEA and the NAME in the option to see if the value of the option is returned when it is the NAME instead of the LEA field.
ie.
print "<option value=\"".$district['NAME']."\">".$district['LEA']."</option>";
[edit] I just caught this in your post:
I even tried changing from the LEA field to another field in the table and still getting an empty alert.
So flipping the values won't make a difference anyhow. If all of that is good to go, and your attributes are quoted, then it's more than likely something in your JS function.