(Kugas)
Alguem me pode arranjar soluçao sem ser em AJAX... please

Olá.
A melhor forma de fazeres isso é na verdade com Ajax. Esta é uma forma simples de o fazeres
Estas são as funções de Javascript que accionam, a primeira, o pedido do Ajax ao servidor e, a segunda, recebo a resposta XML e cria a drop com os dados recebidos.
/******************************************************
* Funcoes AJAX para carregar os concelhos
*****************************************************/
function DadosConc(myDistrito,path) {
//verifica se o browser tem suporte a ajax
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(ex) {
try {
ajax = new XMLHttpRequest();
}
catch(exc) {
alert("O browser não tem recursos para uso do Ajax");
ajax = null;
}
}
}
//se tiver suporte ajax
if(ajax) {
//deixa apenas o elemento 1 no drop, os outros são excluídos
// o «form_concelho» é o name da drop
document.forms[0].form_concelho.options.length = 1;
idOpcao = document.getElementById("opcoes"); //opcoes é o id da drop
//aqui inseres o path do ficheiro de PHP que vai processar o pedido.
ajax.open("POST", path+"/modules/ajax/ajx_concelhos.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function() {
//enquanto estiver processando...emite a msg de carregando
if(ajax.readyState == 1) {
idOpcao.innerHTML = "Carregando...!";
}
//após ser processado - chama função processXML que vai varrer os dados
if(ajax.readyState == 4 ) {
if(ajax.responseXML) {
processXMLConc(ajax.responseXML);
}
else {
//caso não seja um arquivo XML emite a mensagem abaixo
idOpcao.innerHTML = "XML n\u00E3o carregado";
}
}
}
//passa os parâmetro para o php
var params = "distrito="+myDistrito;
ajax.send(params);
}
}
function processXMLConc(obj){
//pega a tag concelho
var dataArray = obj.getElementsByTagName("concelho");
//total de elementos contidos na tag cidade
if(dataArray.length > 0) {
//percorre o arquivo XML paara extrair os dados
for(var i = 0; i < dataArray.length; i++) {
var item = dataArray[i];
//contéudo dos campos no arquivo XML
var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
idOpcao.innerHTML = "Seleccione um concelho";
//cria um novo option dinamicamente
var novo = document.createElement("option");
//atribui um ID a esse elemento
novo.setAttribute("id", "opcoes");
//atribui um valor
novo.value = codigo;
//atribui um texto
novo.text = descricao;
//finalmente adiciona o novo elemento
document.forms[0].form_concelho.options.add(novo);
}
}
else {
//caso o XML volte vazio, printa a mensagem abaixo
idOpcao.innerHTML = "Voltou vazio";
}
}
O ficheiro de php que chamas, é um ficheiro simples que recebe os parametros, executa um query e cria um xml que vai ser processado pela segunda função de javascript.
no onchange do select, passas como primeiro parâmetro o this.value e segundo parâmetro o url do servidor.
Se quiseres posso-te depois passar para o mail os scripts (aqui não os consigo por, ainda não percebi pq). Podes passar o mail por PM.
Esta é a forma de o fazer com ajax.
Poderás tentar, caso não queiras usar o ajax,colocar o method do form como POST, e chamares o $_SERVER['PHP_SELF'] cada vez que carregas os drops.