Вы, кажется, понимаете, почему это не работает, просто не как исправить это, верно?
Когда вы возвращаете данные со своей страницы PHP, их нужно обрабатывать с помощью javascript.Вместо возврата,
echo "<option value='".$x."'>".$x."</option> </select>";
Возможно, это должен быть json.
{ val : key, val : key }
Затем Javascript может вставить его в HTML DOM, тогда ваша форма будет повторно распознавать значения при отправке формы.
Что касается кода Javascript, есть несколько способов, в jQuery есть несколько плагинов для его обработки.В противном случае я могу покопаться в поиске какого-то кода, если кто-то меня тоже не побьет:)
Редактировать:С рук, я думаю, этот код должен работать.Это не проверено, но, надеюсь, даст больше идеи, как его использовать.заменить
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
на
var response = xmlhttp.responseText;
var select = document.getElementByName('listdate');
var option;
for(var i=0; i<response.length; i++)
{
option = document.createElement("OPTION");
option.text = response.key[i];
option.value = response.val[i];
select.options.add(option);
}