Foros del Web » Programando para Internet » Javascript »

Problema al actualizar un valor de una variable javascript

Estas en el tema de Problema al actualizar un valor de una variable javascript en el foro de Javascript en Foros del Web. ¡Hola amigos! No llevo mucho con php y javascript y estoy haciendo un software para un colegio. En ese software hay que crear, ver y ...
  #1 (permalink)  
Antiguo 14/04/2007, 04:51
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 3 meses
Puntos: 0
Problema al actualizar un valor de una variable javascript

¡Hola amigos!

No llevo mucho con php y javascript y estoy haciendo un software para un colegio. En ese software hay que crear, ver y editar los datos de un profesor. Y ese profesor tiene un número indeterminado de titulaciones, pues bien, al editar el profesor muestro las titulaciones que tiene y el usuario tiene q poder cambiar el texto que hay en una determinada titulación, pero además debe poder cambiar en número de titulaciones de ese profesor, es decir, añadir o borrar titulaciones.
Y para eso uso javascript, pero no consigo actualizar los datos de los inputs que creo con javascript de las titulaciones con los valores que extraigo de la tabla correspondiente en php.

Os explico un poco el código:

Código:
<?
  session_start();
?>
<html>
<head>
<title>Datos Profesor</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

  
<script type="text/javascript">

num=0;
function crear(obj) {
alert(num);
  num++;
  fi = document.getElementById('fiel'); // 1
  //fi.insertBefore(contenedor,obj); // 2
 contenedor = document.createElement('div'); // 2
  contenedor.id = 'div'+num; // 3
  fi.appendChild(contenedor); // 4

  ele = document.createElement('input'); // 5
  ele.type = 'text'; // 6
  ele.name = 'text'+num; // 6
  ele.size = '40';
  contenedor.appendChild(ele); // 7
  
  ele = document.createElement('input'); // 5
  ele.type = 'button'; // 6
  ele.value = 'Borrar'; // 8
  ele.name = 'div'+num; // 8
  ele.onclick = function () {borrar(this.name)} // 9
  contenedor.appendChild(ele); // 7
}
function borrar(obj) {
  fi = document.getElementById('fiel'); // 1 
  fi.removeChild(document.getElementById(obj)); // 10
}


function enviar(){
  document.form1.submit();
}


function actualizar(obj,valor) {
alert(valor);
  num++;
  fi = document.getElementById('fiel'); // 1
  //fi.insertBefore(contenedor,obj); // 2
 contenedor = document.createElement('div'); // 2
  contenedor.id = 'div'+num; // 3
  fi.appendChild(contenedor); // 4

  ele = document.createElement('input'); // 5
  ele.type = 'text'; // 6
  ele.name = 'text'+num; // 6
  ele.size = '40';
  ele.value = valor;
  contenedor.appendChild(ele); // 7
  
  ele = document.createElement('input'); // 5
  ele.type = 'button'; // 6
  ele.value = 'Borrar'; // 8
  ele.name = 'div'+num; // 8
  ele.onclick = function () {borrar(this.name)} // 9
  contenedor.appendChild(ele); // 7
}



</script>



<?
$login="marcospp";
//$login="fulano";


include("conexion.php");
$sql = "select * from profesores where login = '".$login."'";
$result = mysql_query($sql, $GLOBALS["miConexion"]) or die(mysql_error());
$fila= mysql_fetch_assoc($result);


$sql1 = "select * from titulaciones where DNIProfesor = '".$fila['DNI']."'";
$result1 = mysql_query($sql1, $GLOBALS["miConexion"]) or die(mysql_error());

echo '<form name="f" method = "POST" action ="guardarProfesor.php">

  <h2>Datos del profesor '.$fila['nombre'].' '.$fila['apellido1'].' '.$fila['apellido2'].'</h2>'; 
echo  '<div style="margin-left: 3%; width=200px;"> 
    DNI: <input name="cDNI" type="text" value="'.$fila['DNI'].'">
	<br><br>
	Nombre: <input name="cNombre" type="text" value="'.$fila['nombre'].'">
	&nbsp&nbsp Primer apellido: <input name="cApellido1" type="text" value="'.$fila['apellido1'].'">
	&nbsp&nbsp Segundo apellido: <input name="cApellido2" type="text" value="'.$fila['apellido2'].'">  
	<br><br>
	Dirección: <input name="cDireccion" type="text" size="40" value="'.$fila['direccion'].'">
	&nbsp&nbsp Teléfono: <input name="cTelefono" type="text" value='.$fila['telefono'].'>
    <br><br>
	
	<strong>Titulaciones del profesor</strong>		<br><br>';
	$i=0;
echo'	
<fieldset id="fiel">';		

	while ($fila1= mysql_fetch_assoc($result1)){
		$_SESSION['nTitulacion'.$i]=$fila1['nTitulacion'];
	echo'
		- <input onload="actualizar(this,'.$fila1['nombreTitulacion'].')">';
echo'		
		<br><br>';
		$i++;
	}
echo '	
<input type="button" value="Añadir titulación" onclick="crear(this)">
</fieldset>';

	

echo '<fieldset  size="10"><p><legend>Dedicación</legend></p><p></p><label>
    <input type="radio" name="cDedicacion" value="valorTotal" ';
	if ($fila['dedicacion']=='1') echo 'checked';
echo  '>Total</label>&nbsp&nbsp<label>
    <input type="radio" name="cDedicacion" value="valorParcial" ';
	if ($fila['dedicacion']=='0') echo 'checked';
echo    '>Parcial</label><br>
</fieldset>';

echo	'<br><br>  
	Otras actividades: <br>
	<textarea name="cOtrasActividades" cols="40" rows="4">'.$fila['otrasActividades'].'</textarea>';

echo	'<br><br>  
	
	<input name="cDirector" type="checkbox" value="valorDirector" ';
	if ($fila['director']=='1') echo 'checked';
echo'> Director
	&nbsp;&nbsp;<input name="cSubdirector" type="checkbox" value="valorSubdirector" ';
	if ($fila['subdirector']=='1') echo 'checked';
echo'> Subdirector
	&nbsp;&nbsp;<input name="cTutor" type="checkbox" value="valorTutor" ';
	if ($fila['tutor']=='1') echo 'checked';
echo'> Tutor
	&nbsp;&nbsp;<input name="cJefeSeccion" type="checkbox" value="valorJefeSeccion" ';
	if ($fila['jefeSeccion']=='1') echo 'checked';
echo'> Jefe sección
	&nbsp;&nbsp;<input name="cOrientador" type="checkbox" value="valorOrientador" ';
	if ($fila['orientador']=='1') echo 'checked';
echo'> Orientador
	&nbsp;&nbsp;<input name="cRape" type="checkbox" value="valorRape" ';
	if ($fila['rape']=='1') echo 'checked';
echo'> RAPE
	<br><br>

<center>
<input name="botonGuardar" type="submit" value="Guardar">
</center>
</form>';

?>

</body>
</html>
Este código anetrior es el script entero, pero lo que no me funciona es:


Código:
	<strong>Titulaciones del profesor</strong>		<br><br>';
	$i=0;
echo'	
<fieldset id="fiel">';		

	while ($fila1= mysql_fetch_assoc($result1)){
		$_SESSION['nTitulacion'.$i]=$fila1['nTitulacion'];
	echo'
		- <input onload="actualizar(this,'.$fila1['nombreTitulacion'].')">';
echo'		
		<br><br>';
		$i++;
	}
echo '	
<input type="button" value="Añadir titulación" onclick="crear(this)">
</fieldset>';
Y la función actualizar de javascript:

Código:
function actualizar(obj,valor) {
alert(valor);
  num++;
  fi = document.getElementById('fiel'); // 1
 contenedor = document.createElement('div'); // 2
  contenedor.id = 'div'+num; // 3
  fi.appendChild(contenedor); // 4

  ele = document.createElement('input'); // 5
  ele.type = 'text'; // 6
  ele.name = 'text'+num; // 6
  ele.size = '40';
  ele.value = valor;
  contenedor.appendChild(ele); // 7
  
  ele = document.createElement('input'); // 5
  ele.type = 'button'; // 6
  ele.value = 'Borrar'; // 8
  ele.name = 'div'+num; // 8
  ele.onclick = function () {borrar(this.name)} // 9
  contenedor.appendChild(ele); // 7
}

La función actualizar la he creado a partir de la función 'crear' que me funciona bien. No sé si es que esa no es la sintaxis... si me podéis echar una mano...

Muchas gracias
  #2 (permalink)  
Antiguo 14/04/2007, 07:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 3 meses
Puntos: 772
Re: Problema al actualizar un valor de una variable javascript

Hola marcospuig

No me aclaro si el error lo tienes en el código JavaScript o en PHP. Si lo tienes en JavaScript dinos qué error te da y en qué línea. Si es un fallo de PHP, dilo también, para mover el mensaje de foro.

Saludos,
  #3 (permalink)  
Antiguo 14/04/2007, 08:07
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Problema al actualizar un valor de una variable javascript

No me da ningún mensaje de error, lo que me pasa es que simplemente no consigo actualizar el valor de la variable con el nomber de la titulación, en el código de php:

<input onload="actualizar(this,'.$fila1['nombreTitulacion'].')">

llamo a la función actualizar, y ahí es donde no me recibe el parámetro con el nombre de la titulación y me aparece el input pero vacío.
Código:
function actualizar(obj,valor) {
alert(valor);
  num++;
  fi = document.getElementById('fiel'); // 1
 contenedor = document.createElement('div'); // 2
  contenedor.id = 'div'+num; // 3
  fi.appendChild(contenedor); // 4

  ele = document.createElement('input'); // 5
  ele.type = 'text'; // 6
  ele.name = 'text'+num; // 6
  ele.size = '40';
  ele.value = valor;
  contenedor.appendChild(ele); // 7
  
  ele = document.createElement('input'); // 5
  ele.type = 'button'; // 6
  ele.value = 'Borrar'; // 8
  ele.name = 'div'+num; // 8
  ele.onclick = function () {borrar(this.name)} // 9
  contenedor.appendChild(ele); // 7
}
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 16:55.