Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho o seguinte script JS
<script type="text/javascript" charset="ISO-8859-1" >
$(document).ready(function(){//inicio o jQuery
$("select[name='estados']").change(function(){
var idCombo1 = $(this).val();//pegando o value do option selecionado
//alert(idCombo1);//apenas para debugar a variável
if( idCombo1=='0' )
return resetaCombo('cidades');
$.getJSON( ////esse método do jQuery, só envia GET
'function.inc.php',//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('cidades');//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='cidades']").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
var option = document.createElement('option');
$( option ).attr( {value : '0'} );
$( option ).append( 'Escolha' );
$("select[name='"+el+"']").append( option );
}
</script>
integrado com este php
<?php
header("Content-Type: text/html; charset=ISO-8859-1");
function intGet( $campo ){
return isset( $_GET[$campo] ) ? (int)$_GET[$campo] : 0;
}
function retorno( $id )
{
$sql = "SELECT `id`, `nome`
FROM `bairro`
WHERE `cidade` = {$id} ";
$sql .= "ORDER BY `nome` ";
include "config.php";
//$q = $mysqli->query( $sql );
$q = mysql_query( $sql );
$json = ' [';
//if( $q->num_rows > 0 )
if( mysql_num_rows( $q ) > 0 )
{
//while( $dados = $q->fetch_object() )
while( $dados = mysql_fetch_assoc( $q ) )
{
//$json .= '{"nome'.$campo.'":"'.$dados->nome.'","id'.$campo.'":"'.$dados->id.'"}, ';
$json .= '{"nome":"'.$dados['nome'].'","id":"'.$dados['id'].'"}, ';
}
}
else
$json .= '{"nome": "Não Encontrado"}';
$json .= ']';
return $json;
}
echo retorno( intGet('idCombo1') );
Acontece o erro do titulo quando ao alterar um select no IE 7, queria saber se tem como bloquear esses erros de script do IE 7 ou solucionar o problema ai no caso.
Obrigado
linha 91 caractere 49
e qual é a linha 91 ?
boa pergunta, não sei como funciona essa contagem do IE, pq somando esses dois arquivos ai, não dá 91 linhas.
As informações que ele dá são:
Erro no scrpt da página.
Linha 91
Caractere 49
Erro : id is null or not an object
Código : 0
Url : index2.php
no código fonte a linha 91 é
" $( option ).attr( {value : obj.id} );//colocando o value no option"
Se contar os espaços o caractere 49 é "$"
Exibir > Código Fonte
vá até a linha 91, e poste aqui os arredores dela.
Linha 91Caractere 49
Erro : id is null or not an object
Código : 0
Url : index2.php
no código fonte a linha 91 é
" $( option[i] ).attr( {value : obj.id} );//colocando o value no option"
Se contar os espaços o caractere 49 é "$"
arredores:
resetaCombo('cidades');//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='cidades']").append( option[i] );//jogando um à um os options no próximo combo
});
});
});
});function(data){
alert(data);//apenas para debugar a variável
diga oque voltar desse alert no ie
$.each(data, function(i, obj){
alert( obj );
diga oque voltar deste também.
possívelmente foi alguma alteração no parser de JSON do jQuery, entre a versão com a qual eu desenvolvi este script, e a que você está usando.
"[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]..."
No primeiro alert
"[object Object]"
Varios alerts com isso.
Eu uso a mesma versão de jquery que você usou no tutorial 1.3.2
tá tudo certo..
comenta o primeiro alert, e coloca assim:
$.each(data, function(i, obj){
alert( ' id: '+ obj.id+' na linha: '+i );
se alguma voltar: id: undefined na linha.. ... me diga qual linha foi
nenhuma voltou undefined, só no final de todas ele deu o alert
id is null... na linha 89 caractere 11
Linha 89 que é a que eu adicionei
alert( ' id: '+ obj.id+' na linha: '+i );
O erro mudou de linha, mas continua
não vi erro neste script.
em qual linha o ie7 mostrou ?
outro script meu :lol: