PHP - Function no traslada texto, solo números.

 
Vista:
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Function no traslada texto, solo números.

Publicado por German (10 intervenciones) el 24/08/2018 13:46:04
Hola Gente, arranque hacer algo sencillo en WAMP y de entrada me tope con una complicación.

Tengo una tabla muy sencilla. La pego abajo para que se vea.
Tabla

Luego tengo en php el siguiente codigo super sencillo tambien.
Aquí solo lista todo lo que hay, lo ordena por código y como se tiene que editar los datos. Debo
poder hacer click en cada cédula y poder cambiar ese valor. El problema es que cuando hago click en donde hay
texto, no me funciona la function editar(), no hace nada pero si hago click en donde solo hay números. si Funciona bien.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$result = $conn ->query("SELECT * FROM alumnos ORDER BY 'codigo' ASC");
echo "<table><tr><th>Nombre</th><th>Cedula</th><th>Codigo</th><th>Antiguo Codigo</th><th>Observaciones</th></tr>";
while( $row = $result -> fetch_array() ){
    $nombre = $row['nombre'];
     echo "<tr>".
          "<td onclick=editar(".$row['id'].",".$row['name']. ")             >".$row['nombre']." </td>".
              "<td onclick=editar(".$row['id'].",".$row['cedula']. ")            >".$row['cedula']." </td>".
          "<td onclick=editar(".$row['id'].",".$row['codigo']. ")            >".$row['codigo']." </td>".
          "<td onclick=editar(".$row['id'].",".$row['codigoA'].")           >".$row['codigoA']."</td>".
          "<td onclick=editar(".$row['id'].",".$row['observaciones'].") >".$row['observaciones']."</td>".
       "</tr>";
 
}
 
<script>
 
function editar(id,cosa){
    alert(id+":"+cosa);
}
</script>

La columna "name" en la table solo la cree para probar si era algo en esa tabla. minimice el código lo mas que pude para encontrar el error y no me fue posible, no se que le este pasando la verdad.
No se por que cuando hay texto es como si no hiciera click, no abre ningún cuadro de dialogo ni nada.
Con los números funciona perfecto.

Desde ya agradezco si alguien me da una mano con esto!!

EDIT: Agrego algo que probe de ultima, si en la tabla en vez del nombre borro todo y dejo vacía esa parte. Cuando hago clic en el alert me pone "Undefined". si pongo texto no hace nada y no funciona.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Function no traslada texto, solo números.

Publicado por Alejandro (840 intervenciones) el 24/08/2018 15:59:45
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Si vas a pasar una cadena tiene que ser entre comillas.
En tu código generas algo como esto:
1
<td onclick=editar(1,Alejandro)>Alejandro</td>

cuando debería ser así
1
<td onclick=editar(1,'Alejandro')>Alejandro</td>

Puedes ver tu pagina y presionar Ctrl+U para ver el código que estas generando y darte cuenta.

Tendrias que hacer algo como esto
1
2
3
echo "<tr>".
		"<td onclick=editar(".$row['id'].",'".$row['name']. "')>".$row['nombre']." </td>".
	        ...
o esto
1
2
3
echo "<tr>".
		"<td onclick=editar({$row['id']},'{$row['name']}')>{$row['nombre']}</td>".
	        ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Function no traslada texto, solo números.

Publicado por German (10 intervenciones) el 24/08/2018 16:52:31
Tiene lógica ahora que me lo dices.
Por eso me da error de Undefined, estoy pasando una variable que no existe.

Probe la primera opcion y segunda pero sin exito.
Con control +U veo lo siguiente.

La primera opción se ve así

1
2
3
4
5
echo "<tr>".
		"<td onclick=editar(".$row['id'].",'".$row['name']. "')>".$row['nombre']." </td>".
	        ...
 
<td onclick=editar(4,'MONTENEGRO  PABLO')>MONTENEGRO  PABLO </td>

La segunda opcion la veo así

1
2
3
4
5
echo "<tr>".
		"<td onclick=editar({$row['id']},'{$row['name']}')>{$row['nombre']}</td>".
	        ...
RESULTADO
<tr><td onclick=editar(4,'MONTENEGRO  PABLO')>MONTENEGRO  PABLO</td>

En definitiva creo que voy por el camino correcto gracias a tu correcion, de todas formas el problema sigue y no se por que.

Un detalle que note con Ctrl+U (Gracias por esta ayuda, esta genial!!)
Es que en este caso el nombre esta mal ingresado y en parte cambia de color.
"LEDESMA" esta de color azul
"M¦ GUADALUPE" Esta de color rojo
1
<td onclick=editar(47,'LEDESMA  M¦ GUADALUPE')>LEDESMA  M¦ GUADALUPE </td>

No se si ese símbolo "¦" estaría estropeando algo. En definitiva al hacer click sigue sin hacer nada de nada :(
Muchas gracias por la ayuda, corregí en gran parte mi código que estaba mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Function no traslada texto, solo números.

Publicado por German (10 intervenciones) el 24/08/2018 22:16:54
Descubrí que si las palabras están sin espacio, funciona bien. Si tiene un espacio no funcionan


Hice un codigo nuevo aparte.
1
2
3
4
5
6
7
8
9
10
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
 
<input type="button" onclick=editar('javier perez') value="javie rperez" >
 
<script>
 
function editar(cosa){
alert(cosa);
}
</script>

Si le quito el espacio funciona, si lo dejo con espacio no funciona. Cambie 'javier perez' por "javier perez" pero igual no funciona con el espacio. Ese es mi problema, no se por que no anda. Será algo de WAMP?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Function no traslada texto, solo números.

Publicado por Alejandro (840 intervenciones) el 25/08/2018 15:46:04
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
El problema siguen siendo las comillas, en html es atributo=[COMILLAS]valor[COMILLAS]

El código que te pase anteriormente lo hice copiando lo que ya tenias y desde ahí esta mal.

De tu ultimo ejemplo
1
2
3
4
5
6
<input type="button" onclick="editar('javier perez')" value="javier perez" >
<script>
	function editar(cosa){
		alert(cosa);
	}
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Function no traslada texto, solo números.

Publicado por German (10 intervenciones) el 27/08/2018 18:59:33
Tenías toda la razon, me comi las comillas y eso me causaba todo el error.
Cuando corregí el problema quedo funcionando.
Para no marearme con las comillas cerre PHP y lo hice en HTML, para imprimir los valores use <?php echo $row[nombre]; ?>
Desde ya muchas gracias por toda la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar