Foros del Web » Programando para Internet » Javascript »

Problema para pasar variables

Estas en el tema de Problema para pasar variables en el foro de Javascript en Foros del Web. Miren tengo un problema que quisiera me ayudaran... tengo este link : Código: printf("<tr><td>".$row["N_lista"]."</td><td>".$rutfinal."</td><td>".$row["Apellido"]."</td><td>".$row["Nombre"]."</td><td align='center'>".'<a href="panel.php?menu=Libro&estado=Editaralumno&rut='.$row["Rut"].'&Editar=Si" >Editar</a> / <a href="javascript :eliminar('.$row["Rut"].')">Eliminar</a> <br>'."</td></tr>"); Como ven es ...
  #1 (permalink)  
Antiguo 11/04/2012, 12:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Problema para pasar variables

Miren tengo un problema que quisiera me ayudaran... tengo este link :


Código:
printf("<tr><td>".$row["N_lista"]."</td><td>".$rutfinal."</td><td>".$row["Apellido"]."</td><td>".$row["Nombre"]."</td><td align='center'>".'<a href="panel.php?menu=Libro&estado=Editaralumno&rut='.$row["Rut"].'&Editar=Si" >Editar</a> / <a href="javascript:eliminar('.$row["Rut"].')">Eliminar</a><br>'."</td></tr>");
Como ven es parte de una tabla en php que muestra datos de una base de datos y en la ultima columna tengo dos hipervinculos, el que me da problemas es el eliminar, que es un hipervinculo a una funcion en javascript que tengo para preguntarme antes de ir a otra pagina con el procedimiento de borrar, la funcion seria esta:

Código:
<script>
function eliminar(id){
if(confirm("¿Esta seguro de eliminar este registro?")){
window.location='elimina.php?rut='+ id;
}
}
</script>
El problema radica en el dato que estoy pasandole a la funcion ya que los rut en la base de datos los guardo sin guion y puntos no me da problemas cuando paso un rut que tenga solo numeros, ya que pasa el dato y la funcion lo captura ejecutando todo y enviandomelo a la pagina para eliminar. en el navegador puedo ver algo asi cuando me posiciono arriba del hipervinculo Eliminar:

javascript:eliminar(212343439) ---> lo que indica que me esta pasando bien el dato

Ahora el problema es cuando paso un rut con k, ya que no me envia el dato a la funcion, aprieto el hipervinculo eliminar y no ejecuta nada, cuando me posiciono arriba del hipervinculo no tengo ningun problema es igual al anterior

javascript:eliminar(21234343k) ---> lo cual indica que el dato esta pasando bien pero no ocurre nada

Me imagino que tiene algo que ver con que el dato que recibe la funcion hay que especificar que es string, pero he averiguado en Internet sin llegar a una solucion
  #2 (permalink)  
Antiguo 11/04/2012, 13:09
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema para pasar variables

<a href="javascript:eliminar('.$row["Rut"].')">
Ahi está el problema, no le pones comillas al dato que pasas, por eso, si es un numero lo envía como dato numérico pero cuando le añades caracteres y pasa a ser de otro tipo al no llevar comillas el interpreta que es una variable, la cual no está definida y ahi el error.
Tendrías que ponerle comillas al valor que pasas, podrías ahcer así:
Código PHP:
<a href="javascript:;" onclick=eliminar("'.$row['Rut'].'");> 
o así:
Código PHP:
<a href="javascript:;" onclick="eliminar(\''.$row['Rut'].'\');"
  #3 (permalink)  
Antiguo 11/04/2012, 13:11
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema para pasar variables

Intentá con

<a href="javascript:eliminar(\''.$row["Rut"].'\')">
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 11/04/2012, 13:12
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema para pasar variables

Una cosa más, ¿hay algún motivo especial por el cúal uses printf()?
  #5 (permalink)  
Antiguo 11/04/2012, 13:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Problema para pasar variables

Excelente zalito12 me funciono asi:

<a href="javascript:;" onclick=eliminar("'.$row['Rut'].'");>

pero no quiero quedar con la duda, entiendo eso que me dices de la comilla doble, me gustaria saber por que tiene que ir el "javascript:;" si el onclick me hace el procedimiento para enviarme el rut a la funcion... lo pregunto por que ahora en el navegador al posicionarme sobre eliminar me aparece esto:

javascript;

en vez de por ejemplo

javascript:eliminar(212343439)

eso es normal??

ahhhh y con respecto al prinf lo cambie por echo ... cual es la diferencia uno de otro con respecto al funcionamiento??

Última edición por sefirotxx; 11/04/2012 a las 13:51
  #6 (permalink)  
Antiguo 11/04/2012, 14:00
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema para pasar variables

Si dejas el atributo href vacío pueda dar problemas en algunos navegadores, tambien puedes poner href="#", yo suelo usar javascript:;
Pero si tu pregunta es si es normal, sí que ponga eso es normal, el navegador interpreta el código que recibe y al pasar sobre un link lo único que hace es mostrar lo que hay en el atributo href.

Diferencias entre echo y printf(), seguramente más de una, yo creo que echo es mucho más flexible y para imprimir código html directamente yo usaría echo.
Recuerda que si estás en un bucle o un if o cualquier bloque puedes hacer esto:
Código PHP:
<?php
if(1==1){
?>
<p>Código HTML</p>
<?php ?>
Se usa más en bucles y a mi me gusta más entre otras cosas porque el editor de texto te marca el html como tal jeje
  #7 (permalink)  
Antiguo 11/04/2012, 14:05
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Problema para pasar variables

genial gracias por responder mis dudas!!!

Etiquetas: funcion, php, variables
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 07:28.