Hola:
Haber pongo parte de m código:
Cita: <?php
..........
............
..............
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
echo "<form name=\"formu\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
// Formar Selec "Padre".
echo "<label nombre=\"tipo\">Nombre usuario</label>\n";
echo "<select name=\"id_padre\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un usuario </option>\n";
$SQLconsulta_padre="SELECT iniciales,login,CONCAT(nombre,' ',apellido1) AS campos FROM usuario WHERE perfil <>1";
$consulta_padre = mysql_query($SQLconsulta_padre,$con) or die(mysql_error());
While ($registro_padre=mysql_fetch_assoc($consulta_padre )){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
if ($id_padre == $registro_padre['login']){
echo "<option value=\"".$registro_padre['login']."\" selected>".$registro_padre['campos']."</option>\n";
}
..........
...........
// Formar Select "Secundario"
echo "<label nombre=\"titulo_publi\">Titulo publicación</label>\n";
echo "<select name=\"id_hija\" onchange=\"getData('mostrar.php','q='+ this.value+'&actualizar='+this.name, 'destino')\">\n";
if (!empty($id_padre)){
$consul1="SELECT iniciales FROM usuario WHERE login = '$id_padre'";
$consul2 = mysql_query($consul1,$con) or die(mysql_error());
.........
...........
Este código que he puesto anteriormente hace que se carge el primer select con los datos de la BD, y despues en función del valor elegido en el primer select
carga el segundo select tb con datos de la BD.
Cuando se carga el segundo select,a través del evento "onchange", los muestra en otra página, tal y como señalo en color rojo.
En la página mostrar.php se reciben los datos y se muestran a traves de un formulario( que es el código que pongo a continuación).
Cita: ..........
..........
$valor=$_POST['q'];
$etiqueta = $_POST['actualizar'];
?>
<script language="JavaScript" type="text/javascript" src="anadir_publicacion.js"></script>
<?php
//Se realiza la consulta para mostrar los datos
$c="SELECT * FROM publicaciones WHERE codigo= '" . $valor ."';";
$resultado= mysql_query($c) or die("<font color=\"#FF0000\"> ERROR EN LA CONSULTA</FONT>".mysql_error());
$resultado1= mysql_fetch_array($resultado);
..........
.............
<tr>
<td> Titulo</td>
<td> <input type = "text" name = "titulo" value="<?php echo $resultado1['titulo']; ?>" onchange = "compUsuario();getData('modificarpublicaciones.php ','eti='+this.name+'&nuevo_valor='+this.value +'&ocul='+ document.getElementById('oculto').value,'destino4' )"/>
<span id = "DivDestino"></span>
</td>
..........
........
Si además en ese formualrio se pincha y se escribe en los "input" se actualizan directamene los datos en la BD,( por eso pongo el evento "onchange", el que está en azul)
Ahora, vuelvo a plantear mi problema.
Cuando yo en el formulario que se muestran los datos, meto nuevos datos, estos SI que se actualizan en la BD, pero en el segundo select, los datos NO se actualizan.
Pongo un ejemplo:
el primer select está formado por nombre de personas. Si se pincha en una determinada persona, en el segundo select, va a aparecer los titulos de libros que ha escrito esa determinada persona seleccionada en el select 1. Entonces al seleccionar uno de los titulos del segundo select
aparece en el formualrio todos los datos relativos a ese titulo, como por ejemplo("titulo", autor, año.....)
Si yo ahora en ese formulario,modifico el titulo , entonces, si que me lo modifica en la BD el titulo, pero sin embargo en el segundo select me a parece el titulo antigüo. SOlo
se me modiifica el segundo select con los nuevo datos, cuando pincho en el primer select, para ver las opciones, y entonces si que es cuando
se ve que el segundo select se ha modificado.
Pero yo lo que quiero es ahorrarme el tener que dar el primer select, para modificar el segundo, sino que se haga directamente, al modificar los datos en el formulario, ( porque tal y como está ahora el segundo select solo se modifica al pulsar el primer select)
UN sadudo y gracias x adelantado