OK, we have a pulse. Now you can see that the AJAX response is not what you expected it to be, so we look at what we're actually sending to the ajax.php file...
var data_send = 'col='+col+'&wval='+encodeURIComponent(wval);
Suppose we just changed the select box to use Option 1. What does that give us for the $_POST string that we are generating?
col is passed as a parameter of the function call from the onchange event handler and it is known to be "1" for us.
wval is also passed as a parameter of the function call, and is equal to the value of the option that has been made selected. So if we are selecting "Option 1" from the dropdown, then the value we pass to the function is "1".
So overall, our $_POST request (which you indicate uses a $_REQUEST in the PHP to get values for, meaning we can test with simple $_GET strings) is a simple "col=1&wval=1"
Testing that via $_GET, we end up tagging this URL:
And...we get a blank page. So when the AJAX response wipes out your select box contents this is why. You haven't given any contents to replace them with. Nevermind the fact (for now) that the response is being populated in the wrong spot. Lets first find out why we are getting a blank page for a result.
Can you post your ajax.php script so I can see what you're actually testing for? Also, do you have error reporting enabled?
If not, you should enable it right now so we can be sure of whether or not your PHP script is choking on an error of its own.
EDIT: Actually, I'm seeing a status 500 internal server error message for ajax.php - it looks like the script is not even getting a chance to run. You may have issues with .htaccess or something. You need to resolve your 500 status problem before we can continue...