ComboBox (select) dinâmico

1,788 views
Skip to first unread message

Waldeyr Mendes

unread,
Jun 11, 2008, 6:08:37 PM6/11/08
to php-brasil
Olá, Não tenho conhecimento em javascript, e preciso fazer a escolha
de uma cidade, conforme o estado escolhido.

Quando mudo o valor da url manualmente funciona:

http://localhost/waldeyr/select/select.php?estado=2
http://localhost/waldeyr/select/select.php?estado=1

mas a função que estou usando não está funcionando corretamente,
alguém que saiba de javascript, por favor me dê uma ajuda na função
getEstado() do script feito em Java script


Arquivo: select.php

<html>
<Script language="JavaScript">
function getEstado() {
estado=document.select.value;
document.location=('select.php?estado=' + estado );
}
</Script>




<body>
<form action='teste.php' method='POST'>
<?php
require_once "DAOTesi.class.php";

$dao = new DAOTesi();
$estados = $dao->query("SELECT * FROM estado ORDER BY sigla");
echo "<select name='estado' onChange='getEstado(this);'>";
while ($estado=$dao->fetch_row($estados)){
echo "<option value='$estado[0]'>$estado[2]</option>";
}
echo "</select><br>";

$id_estado=$_GET['estado'];
echo "ID do estado escolhido: $id_estado <br>";
//Aqui vamos preencher as cidades conforme o estado escolhido
echo "<br>";
$cidades = $dao->query("SELECT * FROM cidade WHERE cidade.id_estado =
$id_estado ORDER BY descr");
echo "<select name='cidade'>";
while ($cidade=$dao->fetch_row($cidades)){
echo "<option value='$cidade[0]'>$cidade[1]</option>";
}
echo "</select>";
?>
<br><input type='submit' value=' OK '>
</form>
</body>
</html>

Ninetails - Carlos Kazuo

unread,
Jun 13, 2008, 3:58:51 PM6/13/08
to php-b...@googlegroups.com
mude aqui:

function getEstado() {
estado=document.select.value;
document.location=('select.php?estado=' + estado );
}
por
function getEstado() {
estado=document.estado.value;

document.location=('select.php?estado=' + estado );
}


e aqui


echo "<select name='estado' onChange='getEstado(this);'>";

por
echo "<select id='estado' name='estado' onChange='getEstado(this);'>";

caso o acima não funcionar

2008/6/11 Waldeyr Mendes <wal...@gmail.com>:

--
--------------------------------------------------
Carlos Kazuo - Ninetails
ninetails.nine [at] gmail.com

Matheus Machado

unread,
Jun 13, 2008, 6:11:56 PM6/13/08
to php-b...@googlegroups.com
Vi outro erro

no ORDER BY eh DESC e nao DESCR

2008/6/11 Waldeyr Mendes <wal...@gmail.com>:



--
-----------------------------------------------

Matheus Machado
Message has been deleted

Erick Belluci Tedeschi

unread,
Jun 14, 2008, 8:19:24 AM6/14/08
to php-brasil
Olá,
para funcionar essa função, deve ser passada uma lista de parâmetros
no momento da criação da função:
E a maneira correta de pegar o valor da opção selecionada é através da
propriedade selectedIndex do objeto select:

function getEstado(select) {
var estado = select.options[select.selectedIndex];
document.location = 'select.php?estado='+estado.value;

}

Att,

On 13 jun, 16:58, "Ninetails - Carlos Kazuo"
<ninetails.n...@gmail.com> wrote:
> mude aqui:
> function getEstado() {
> estado=document.select.value;
> document.location=('select.php?estado=' + estado );}
>
> por
> function getEstado() {
> estado=document.estado.value;
> document.location=('select.php?estado=' + estado );
>
> }
>
> e aqui
> echo "<select name='estado' onChange='getEstado(this);'>";
> por
> echo "<select id='estado' name='estado' onChange='getEstado(this);'>";
>
> caso o acima não funcionar
>
> 2008/6/11 Waldeyr Mendes <wald...@gmail.com>:

Manuel Lemos

unread,
Jun 15, 2008, 12:24:38 AM6/15/08
to php-b...@googlegroups.com
Viva,


2008/6/11 Waldeyr Mendes <wal...@gmail.com>:


>
> Olá, Não tenho conhecimento em javascript, e preciso fazer a escolha
> de uma cidade, conforme o estado escolhido.
>
> Quando mudo o valor da url manualmente funciona:
>
> http://localhost/waldeyr/select/select.php?estado=2
> http://localhost/waldeyr/select/select.php?estado=1
>
> mas a função que estou usando não está funcionando corretamente,
> alguém que saiba de javascript, por favor me dê uma ajuda na função
> getEstado() do script feito em Java script

Não sei se o que você pretende é aquela situação de combos interligados.
Se for isso veja esta classe de formulários que vem com um plug-in
precisamente para isso:

http://www.phpclasses.org/formsgeneration


Veja aqui um exemplo ao vivo:

http://www.meta-language.net/forms-examples.html?example=test_linked_select


Aqui tem um tutorial em video que fala sobre isso:

http://www.phpclasses.org/browse/video/2/package/1/section/combos_interligados.html


Nesta semana que vem estarei dando uma palestra sobre esta classe de
formulários e seus plug-ins em Santa Catarina num evento de PHP do grupo
de usuários do estado. Quem estiver interessado, pode obter mais
informações aqui:

http://www.phpsc.com.br/

--

Um abraço,
Manuel Lemos

PHP professionals looking for PHP jobs
http://www.phpclasses.org/professionals/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

Reply all
Reply to author
Forward
0 new messages