Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Peguei este código neste link:
http://forum.imaster...es-ajax-jquery/
ele está funcionando só no mozzila e no ie8, no chrome e no opera não carrega...
alguem conhece um código pra preencher combobox que funcione na maioria dos browsers?
ou o erro está no código?
eu mudei o código um pouco ele está aqui:
pagina.php:
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){//inicio o jQuery
$("select[name='rede']").change(function(){
var idCombo1 = $(this).val();//pegando o value do option selecionado
//alert(idCombo1);//apenas para debugar a variável
$.getJSON(//esse método do jQuery, só envia GET
'valida_combo.php?tipo=1',//script server-side que deverá retornar um objeto jSON
{idCombo1: idCombo1},//enviando a variável
function(data){
//alert(data);//apenas para debugar a variável
var option = new Array();//resetando a variável
resetaCombo('posto');//resetando o combo
$.each(data, function(i, obj){
option[i] = document.createElement('option');//criando o option
$( option[i] ).attr( {value : obj.id} );//colocando o value no option
$( option[i] ).append( obj.nome );//colocando o 'label'
$("select[name='posto']").append( option[i] );
//jogando um à um os options no próximo combo
});
});
});
});
/ função pronta para ser reaproveitada, caso queira adicionar mais combos dependentes /
function resetaCombo( el )
{
$("select[name='"+el+"']").empty();//retira os elementos antigos
}
</script><?php
function intGet( $campo ){
return isset( $_GET[$campo] ) ? (int) utf8_decode($_GET[$campo]) : 0;
}
if (isset ($_GET['tipo']))
switch ($_GET['tipo'])
{
case 1:
function retorno( $id )
{
$sql = "SELECT P.`id_pessoa_juridica`,P.`razao_social`
FROM pessoa_juridica P
JOIN pj_pj
WHERE P.`tipo_pessoa`= '3'
AND pj_pj.id_destino='$id'
AND P.id_pessoa_juridica = pj_pj.id_origem ";
$mysqli = new mysqli("localhost", "root", "solid", "Sistema");
$q = $mysqli->query( $sql );
$json = ' [';
if( $q->num_rows > 0 )
{
while( $dados = $q->fetch_object() )
{
$json .= '{"nome":"'.$dados->razao_social.'","id":"'.$dados->id_pessoa_juridica.'"}, ';
}
}
else
$json .= '{"nome'.$campo.'": "Não Encontrado"}';
$json .= ']';
return $json;
}
echo retorno( intGet('idCombo1') );
break;
...Olá William,
O referido link, não rola no meu Chrome, não...
use o Responder Azul /applications/core/interface/imageproxy/imageproxy.php?img=http://img222.imageshack.us/img222/8498/respondery.png&key=db0a5d713bd1099ba19595f08a80f5881ed1a276406432195f83536896c761d5" alt="respondery.png" />ou a 'Resposta Rápida'.
Aperte Ctrl+Shif+J no teu Chrome
veja qual erro aparece.
você está rodando o script atravez de um servidor web, certo ?
localhost/...
ps: o link do exemplo agora está fora do ar, pq mudei de servidor e não migrei o banco completamente ainda.
mas o script funciona sim.
Prezados,
Estou com esse mesmo problema do nosso amigo Galuschka e do luamm, realmente nao roda nem no Chrome e nem no Firefox...estou usando o mesmo codigo informado pelo amigo William...
Peco a ajuda dos nobres colegas...
Atenciosamente
Gustavo
cara... o erro esta na tua implementação.. veja:
http://www.wbruno.com.br/scripts/combos-dependentes.php
o código original funciona sim no Chrome e no Opera ^_^
qndo alterar coisas do script tome cuidado.. por exemplo, de onde saiu:
valida_combo.php?tipo=1 ??se qr enviar outros parâmetros, o correto pela sintaxe, era adicionar no json a ser enviado:
'valida_combo.php',
{idCombo1: idCombo1, tipo: '1'},
novamente, esse script funciona em todos os navegadores que testei.. se tá com algum problema, é particularidade da tua implementação.