Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2007, 04:51
marcospuig
 
Fecha de Ingreso: febrero-2007
Mensajes: 138
Antigüedad: 17 años, 4 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