Foros del Web » Programando para Internet » Javascript »

Variable no definida

Estas en el tema de Variable no definida en el foro de Javascript en Foros del Web. Hola Este código me lanza el error: Variable sid no está definida No entiendo cual es el problema Código PHP: < script language = "javascript"  type ...
  #1 (permalink)  
Antiguo 30/07/2008, 06:13
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Variable no definida

Hola

Este código me lanza el error: Variable sid no está definida

No entiendo cual es el problema

Código PHP:
<script language="javascript" type="text/javascript">
var 
xmlHttp
function ModValor(rastrosid) {

    if (
sid.length == 0) { 
          
document.getElementById('porcion_'+sid).innerHTML="";
         return;
      }
xmlHttp=GetXmlHttpObject()
    if (
xmlHttp == null) {
          
alert ("Tu navegador no soporta AJAX!");
          return;
      } 
var 
url="modificar.asp";
url=url+"?r="+rastro;
url=url+"&s="+sid;
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);



function 
stateChanged() { 
    if (
xmlHttp.readyState == 4) { 
        
document.getElementById('porcion_'+sid).innerHTML=xmlHttp.responseText;
    }
}


function 
GetXmlHttpObject() {
var 
xmlHttp=null;
    try
      {
  
// Firefox, Opera 8.0+, Safari
      
xmlHttp=new XMLHttpRequest();
      }
    catch (
e)
      {
  
// Internet Explorer
          
try
            {
            
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
          catch (
e)
            {
            
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
      }
    return 
xmlHttp;
}

</
script 

Código:
<a href="#" Onclick="ModValor('1', '782'); return false;">Modificar Valores</a>

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #2 (permalink)  
Antiguo 30/07/2008, 06:48
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Variable no definida

El problema está en la función stateChanged en la línea:
Código:
        document.getElementById('porcion_'+sid).innerHTML=xmlHttp.responseText;
Y a lo que se refiere es exactamente a lo que dice, que en esa función la variable sid no está definida.
  #3 (permalink)  
Antiguo 30/07/2008, 08:31
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Variable no definida

Gracias por tu respuesta.

Lo he solucionado así

Código PHP:
function ModValor(rastrosid) {
var 
ajax=creaAjax();
var 
objeto document.getElementById('post_'+sid);

 if (
sid.length == 0) { 
          
objeto.innerHTML="";
         return;
      }

    if (
ajax == null) {
          
alert ("Tu navegador no soporta AJAX!");
          return;
      } 
var 
url="modificar.asp";
url=url+"?r="+rastro;
url=url+"&s="+sid;
ajax.open ('GET'urltrue);
ajax.onreadystatechange = function() {

         if (
ajax.readyState==|| ajax.readyState==|| ajax.readyState==3) {
                                      
objeto.innerHTML="Cargando .......";
         }
         else if (
ajax.readyState==4){
                   if(
ajax.status==200){
                                             
objeto.innerHTML=ajax.responseText;
                   }
                   else if (
ajax.status==404)
                                             {

                            
alert ("La dirección no existe");
                                             }
                                             else
                                             {
                            
alert ("Error: "+ajax.status);
                                             }
                                    }
                  }
         
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
         
ajax.send(null);
         return


__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 30/07/2008 a las 14:45
  #4 (permalink)  
Antiguo 01/08/2008, 06:10
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Variable no definida

Hola

Otra vez con el mismo problema. Ahora esto usando un manejador de eventos y es la primera vez que tengo
la necesidad de pasarle dos argumentos a la función ModValor y uno a InicializarEventos.

He de pasarle estos argumentos forzosamente ya que se trata de modificar los registros que el usuario estime oportuno

Tal y como está ahora, por supuesto, no funciona.

var ref=document.getElementById(sid); ---> No tiene propiedad
var objeto = document.getElementById('post_'+sid); ---> No tiene propiedad

Código PHP:
addEvent(window,'load',inicializarEventos,false);

function 
inicializarEventos()
{
  var 
ref=document.getElementById(sid);
  
addEvent(ref,'click',enviarDatos,false);
}

function 
enviarDatos(e)
{
  if (
window.event)
    
window.event.returnValue=false;
  else
    if (
e)
      
e.preventDefault();
  
editar_msg(rastrosid);
}

function 
ModValor (rastrosid) {
var 
ajax=creaAjax();
var 
objeto document.getElementById('post_'+sid);
var 
url="modificar.asp";
url=url+"?r="+rastro;
url=url+"&s="+sid;
ajax.open ('GET'urltrue);
ajax.onreadystatechange = function() {

         if (
ajax.readyState==|| ajax.readyState==|| ajax.readyState==3) {
                                      
objeto.innerHTML="Cargando .......";
         }
         else if (
ajax.readyState==4){
                   if(
ajax.status==200){
                                             
objeto.innerHTML=ajax.responseText;
                   }
                   else if (
ajax.status==404)
                                             {

                            
objeto.innerHTML "La dirección no existe";
                                             }
                                             else
                                             {
                            
objeto.innerHTML "Error: ".ajax.status;
                                             }
                                    }
                  }
         
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
         
ajax.send(null);
         return




function 
addEvent(elemento,nomevento,funcion,captura)
{
  if (
elemento.attachEvent)
  {
    
elemento.attachEvent('on'+nomevento,funcion);
    return 
true;
  }
  else  
    if (
elemento.addEventListener)
    {
      
elemento.addEventListener(nomevento,funcion,captura);
      return 
true;
    }
    else
      return 
false;
}

function 
creaAjax() {
var 
objetoAjax=null;
    try
      {
  
// Firefox, Opera 8.0+, Safari
      
objetoAjax=new XMLHttpRequest();
      }
    catch (
e)
      {
  
// Internet Explorer
          
try
            {
            
objetoAjax=new ActiveXObject("Msxml2.XMLHTTP");
            }
          catch (
e)
            {
            
objetoAjax=new ActiveXObject("Microsoft.XMLHTTP");
            }
      }
    return 
objetoAjax;

Código:
<a href="modificar.asp" id="782" name="782">Editar</a>
<br />
<div id="post_782">Contenido del registro sin modificar</div>
Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:37.