Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tuk

'id' is null or not an object

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

não vi erro neste script.

 

em qual linha o ie7 mostrou ?

 

outro script meu :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

e qual é a linha 91 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 é "$"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exibir > Código Fonte

 

vá até a linha 91, e poste aqui os arredores dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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[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
                               });
                       });
               });
       });

Compartilhar este post


Link para o post
Compartilhar em outros sites

                                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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"[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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.