Ir para conteúdo
Fórum Script Brasil
  • 0

atualizar campo select2 de acordo com o select1


cwarez

Pergunta

galera...

estou seguindo esse tutorial

http://phpbrasil.com/artigo/eG8kaIH26urE/2...dos-sem-refresh

são dois menus selects

um Estado...e um Cidade

com esse tutorial eu consegui fazer com que ao Clicar em estado....o 'cidade' atualiza automaticamente com as cidades cadastrada no db....entendem?

isso eu consegui de boa

agora q vem meu problema

na hora de editar

eu chamo asism

edit.php?id=tal

dai o menu select ESTADO, já vem selecionado de acordo com o ID

mas o menu select CIDADE não vem...

como faço para colocar o 'selected' antes do value?

o codigo é esse

<script language="javascript">
function confirmaExclusao(aURL) {
if(confirm('Você tem certeza que deseja excluir este registro?')) {
location.href = aURL;
}
}
function list_dados(valor)
{
    // Passando os dados para a página result.php através do método GET.
    http.open("GET", "franquias/cidade.php?estado=" + valor, true);
    http.onreadystatechange = handleHttpResponse;
    http.send(null);
}

function handleHttpResponse()
{
    campo_select = document.forms[0].cidade;
    if (http.readyState == 4) {
        campo_select.options.length = 0;
        results = http.responseText.split(",");
        for (var i = 1; i < results.length; i++) {
            string = results[i].split("|");
            campo_select.options[i] = new Option(string[0], string[1]);
        }
    }
}

// Essa função é somente para identificar o Navegador e suporte ao XMLHttpRequest.
function getHTTPObject()
{
    var req;
    try {
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
            if (req.readyState == null) {
                req.readyState = 1;
                req.addEventListener("load", function() {
                    req.readyState = 4;
                    if (typeof req.onReadyStateChange == "function") {
                        req.onReadyStateChange();
                    }
                }, false);
            }
            return req;
        }

        if (window.ActiveXObject) {
            var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
            for (var i = 0; i < prefixes.length; i++) {
                try {
                    req = new ActiveXObject(prefixes[i] + ".XmlHttp");
                    return req;
                } catch (ex) {};
            }
        }
    } catch (ex) {}

    alert("XmlHttp Objects not supported by client browser");
}
var http = getHTTPObject();
// Logo após fazer a verificação, é chamada a função e passada
// o valor à variável global http.

</script>
pagina...cidade.php
<?php
header("Content-Type: text/html; charset=iso-8859-1");


include"../../includes/config.php";
$linha = "";
// Guardando o id passado pelo form select
// Trim remove os espaços no inicio e final
// addslashes Retorna uma string com barras invertidas antes de caracteres
// que precisam ser escapados para serem escapados em query a banco de dados
$estado = addslashes(trim($_GET["estado"]));
// Fazendo nosso selec para todas subcategorias que pertencem à categoria presente
// na variavel $categoria acima
$consulta = mysql_query("SELECT * FROM cidades  WHERE estado = '$estado' ORDER BY nome ASC" );
while( $row = mysql_fetch_assoc($consulta) ){
        // subcategoria será apresentada da forma "NOME|CODIGO,..."
        // Maneira a ser tratada no JavaScript
        // Vale lembrar que estamos contatenando o "nome" com a "|" com o "codigo" e com a ","

        $linha .=  $row["nome"] . "|" . $row["nome"] . ",";
}
$count = mysql_num_rows($consulta);
if ($count == 0){
echo"nada cadastrado";
}
//Retira a última vírgula para não vir registro em branco.
$linha = substr($linha,0,(strlen($linha)-1));
echo $linha;
?>

porque isso?? porque quando clicar em editar...e chamar a pagina editar.php?id=tal...vou ter q editar o menu select cidade...entendem?

ajudem ae

vlww

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

sim, porque eu to fazendo um form para editar um registro da tabela saka

dai eu chamo assim

editar.php?id=ID TAL

dai ele já carrega o form

pra não vim com os campos em branco, eu fiz um select com o $id

daí o menu estado já vem selecionado o estado q contem no $id

mas a cidade não...

entende?

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi.. Nesse caso é porque o evento onchange não é chamado, o valor já vem escrito.

Existem algumas soluções para isso. Uma delas:

onload=function(){
document.getElementById("elemento").onchange() //chama a função
}
Outra opção é deixar o valor em branco e modificar via javascript. Exemplo em ASP:
if(Request.QueryString("id") != "") then
response.write "<script type='text/javascript'>document.getElementById('elemento').selectedIndex=" & _
request.querystring("id") & "'</script>"
end if

Sinceramente acho a primeira opção mais elegante.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...