Foros del Web » Programando para Internet » Javascript »

Aparece solo el primer valor php y DOM

Estas en el tema de Aparece solo el primer valor php y DOM en el foro de Javascript en Foros del Web. Hola amigos del foro soy nuevo en esto de DOM en fin tengo un codigo para crear una tabla con valores de la base de ...
  #1 (permalink)  
Antiguo 30/04/2013, 17:20
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Aparece solo el primer valor php y DOM

Hola amigos del foro soy nuevo en esto de DOM en fin tengo un codigo para crear una tabla con valores de la base de datos esto lo hago en php dentro del BODY


Código PHP:

<?php 

include("conexion.php");

$sqlmysql_query("SELECT * FROM Pacientes");


print 
'<table width="90%"  border="1" cellspacing="3" cellpadding="3">';

while(
$datos=mysql_fetch_array($sql)){
$name=$datos['nombre'];
$apellido=$datos['apellido'];
$idpac=$datos['id_paciente'];
print 
'<tr>
    <th width="10%" scope="col" onclick="javascript:show(); return false;">
      <input name="valorphp" type="text" id="valorphp" value="'
.$idpac.'">
   </th>
    <th width="67%" scope="col">'
.$name.'&nbsp;'.$apellido.'</th>
    <th width="23%" scope="col">&nbsp;</th>
  </tr>'
;


}
print 
'</table>';
?>
en una de las columnas lamo a la funcion javascript:show(); y leo el valor del input con id="valorphp"

asi

Código HTML:
<script>
	function show() {
		var unaTabla;
		unaTabla = document.getElementById("showimage");
		if(unaTabla.style.visibility == "hidden") {
			unaTabla.style.visibility = "visible";
			
	
		}
		
		var elem = document.getElementById("valorphp").value;
                
document.getElementById("caja").value = elem;
		}

</script> 
En el Div con id="showimage" tengo un input con id="caja" que recibe el valor del elemento con id="valorphp"


Ahora se imprime la tabla con los valores correctamente

1 Pedro
2 Juan
7 Maria
4 David

cuando hago click en la columna que llama a la funcion show() Muestra en el input id=caja solo el primer id en este caso 1. la idea es que muestre cada id correspondiente si hago click en la columna Maria deberia mostrar en el input un 7.


Gracias por cualquier ayuda
  #2 (permalink)  
Antiguo 30/04/2013, 18:38
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: Aparece solo el primer valor php y DOM

No deberías mostrarnos tu php si no el código que este genera.
Por lo pronto tené en cuenta que como lo estás haciendo vas a tener multiples inputs de id "valorphp" y eso va a hacer que cualquier script que quiera identificar ese elemento va a fallar. los id deben de ser únicos

Tampoco me queda muy claro porque le das un evento onclick al th si este dentro tiene un input, el click supuestamente se hará en el input.
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 01/05/2013, 12:03
 
Fecha de Ingreso: febrero-2013
Ubicación: Margarita
Mensajes: 72
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Aparece solo el primer valor php y DOM

gracias por responder emprear la razon por la que hago clicc en el td y no en el input es porque el input en realidad va a ser tipo hidden.

Entiendo lo que quieres decir con los id "valorphp" : se han creado multiples inputs con el mismo id en el ciclo while.

Tienes alguna idea de como puedo hacerlo. he leido que puedo usar getElementsByName(); en vez del id pero de ahi a donde iria?
Gracias de antemano

Última edición por claudinho; 01/05/2013 a las 12:26
  #4 (permalink)  
Antiguo 01/05/2013, 13:26
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: Aparece solo el primer valor php y DOM

Cita:
Iniciado por claudinho Ver Mensaje
gracias por responder emprear la razon por la que hago clicc en el td y no en el input es porque el input en realidad va a ser tipo hidden.

Entiendo lo que quieres decir con los id "valorphp" : se han creado multiples inputs con el mismo id en el ciclo while.

Tienes alguna idea de como puedo hacerlo. he leido que puedo usar getElementsByName(); en vez del id pero de ahi a donde iria?
Gracias de antemano
¿Clickear un th y que recuper el value de un campo hidden que esta contendio dentro de este?, Además a tus th no les va a quedar ningún contenido dentro, no sé a que le van a hacer click entonces.
te va a quedar esto

Código:
Pedro
Juan
Maria
David
en lugar de esto

Código:
1 Pedro
2 Juan
7 Maria
4 David
Otra cosa, decís, "al hacer click en la columna María muestre el id que le corresponde".
María no es una columna , a lo sumo una celda (td o th).

Me parece muy complicado lo que estás haciendo

Más o menos deberías generar algo asi
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>titulo</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<table>
<tr><th>id usuario</th><th>nombre</th></tr>
<tr><td><input type="hidden" size="1" value="1" id="a_1"/></td><td onclick="document.getElementById('a_1').type = 'text';">María</td></tr>
<tr><td><input type="hidden" size="1" value="2" id="a_2"/></td><td onclick="document.getElementById('a_2').type = 'text';">Juan</td></tr>
<tr><td><input type="hidden" size="1" value="3" id="a_3"/></td><td onclick="document.getElementById('a_3').type = 'text';">Pedro</td></tr>
</table>
</body>
</html> 
para lo cual en el bucle de tu php tenés que diferenciar los id, y si el id_paciente es diferente en cada uno asignarlo no solo como value sino también como id

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: dom, funcion, input, php, primer, select, valor
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 15:10.