Llevo 4 semanas intentando encontrar la lógica a lo que le pasa a mi progrmaa pero no soy capaz de solucionarlo.... os comento, tengo una página con unos datos superiores que se recargan sólos, pues bien, lo que quiero recuperar es el valor seleccionado por el combo pero como el código se recarga... no soy capaz de obtenerlo, os enseño todo el código de la práctica
Código PHP:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Laboratorio de Electrónica</title>
<style type="text/css">
<!--
body {
background-color: #C2D0DC;
}
.Estilo1 {color: midnightblue}
#capa_CI { position:absolute;
width:924px;
height:89px;
z-index:3;
left: 294px;
top: 122px;
visibility: hidden;
}
-->
</style>
<script language="javascript">
function solonumeros(e){
tecla = (document.all) ? e.keyCode : e.which;
if (event.keyCode < 48 || event.keyCode > 57)
event.returnValue =false;
}
function damevalor(){
/* Esta función devolverá el valor elegido en el combo práctica para poder enviar el código de la práctica */
var variable = document.getElementById('practica');
valor = variable.options[variable.selectedIndex].text;
document.getElementById("campo2").value=valor;
document.getElementById("campo3").value=valor;
}
function datos(){
var variable = document.getElementById('practica');
valor = variable.options[variable.selectedIndex].text;
if (variable.selectedIndex!='0'){
var index=document.forms.formulario.practica.selectedIndex;
document.getElementById("campo1").value=valor;
document.forms.formulario.submit();
}else{
document.getElementById('practica').selectedIndex= '0';
document.getElementById("asignatura").value='';
document.getElementById("alumnos").value='';
document.getElementById("puestos").value='';
}
}
</script>
</head>
<body>
<table width="100%" border="0">
<tr>
<th scope="col"> </th>
</tr>
<tr>
<th scope="row">
<span class="Estilo1">
Seleccione la práctica que desee y el kit de práctica que necesitaría para su realización </span> </th>
</tr>
<tr>
<th scope="row"> </th>
</tr>
<tr>
<th scope="row">
<form method="post" name="formulario">
<fieldset style="border:#000066" style="font-weight:100">
<legend>Datos del kit</legend>
<p align="left"><strong>
<?php
$link=mysql_connect("localhost","root","");
mysql_select_db("laboratorio",$link);
$consulta= mysql_query("SELECT cod_practica,asignatura,titulo_practica from practica");
$numero_registros=mysql_num_rows($consulta);
mysql_close ($link);
?><span class="Estilo1"> Seleccione la práctica:</span>
<select name="envia" onchange="datos()" id="practica">
<option>Seleccionar </option>
<?php
while ($fila = mysql_fetch_assoc($consulta)){
if($fila["titulo_practica"] == $_POST['envia']){
$selected = "selected";
}else{
$selected = "";
}
?>
<option <?php echo $selected; ?>> <?php echo $fila["titulo_practica"]; ?> </option> <?php
}
?>
</select>
<input type="hidden" name="campo1" id="campo1"/>
<?php
//Nos guardamos el código de la practica
$link=mysql_connect("localhost","root","");
mysql_select_db("laboratorio",$link);
$consulta= mysql_query("SELECT cod_practica from practica where titulo_practica = '$campo1'");
$row = mysql_fetch_array ($consulta);
echo "<input type='hidden' name='codigo_practica' id='codigo_practica' value='$row[1]'> \n";
?>
<span class="Estilo1">Asignatura:</span>
<?php
$campo_busqueda= $_POST['campo1'];
$link=mysql_connect("localhost","root","");
mysql_select_db("laboratorio",$link);
$consulta= mysql_query("SELECT asignatura,numero_alumnos,num_persopuesto from practica where titulo_practica='$campo_busqueda'");
$row = mysql_fetch_row($consulta);
echo "<input name='asignatura' type='text' id='asignatura' disabled='true' size='22' value='$row[0]'>\n"
?>
<span class="Estilo1">Número Alumnos: </span>
<?php
echo "<input name='alumnos' type='text' id='alumnos' disabled='true' size='1' value='$row[1]'>\n"
?><span class="Estilo1">Número Puestos: </span>
<?php
echo "<input name='alumnos' type='text' id='puestos' disabled='true' size='1' value='$row[2]'>\n"
?>
</strong></p>
<p> </p>
</fieldset>
</form>
<?php
echo "<input type='hidden' name='campo3' id='campo3'/> \n";
echo $campo3;
// TRATAMOS LA TABLA INFERIOR PARA PODER RECUPERAR LOS DATOS DEL KIT
$link=mysql_connect("localhost","root","");
mysql_select_db("laboratorio",$link);
$result = mysql_query("SELECT * FROM kit where Practica = '$campo3'");
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<table border = '0' align='center' class='Estilo1'> \n";
echo "<tr> \n";
echo "<td><b>A continuación se muestra un detalle de los componentes de la base de datos: </b></td> \n";
echo "<tr> \n";
echo "<tr> \n";
echo "<tr> \n";
echo "<tr> \n";
echo "<tr> \n";
echo "<tr> \n";
echo "<tr> \n";
echo "</table> \n";
echo "<table border = '1' bordercolordark='#000066' align='center' class = 'Estilo'> \n";
echo "<tr> \n";
echo "<td align= 'center' class = 'Estilo1'><b>Componente</b></td> \n";
echo "<td align= 'center' class = 'Estilo1'><b>Unidades</b></td> \n";
echo "<td align= 'center' class = 'Estilo1'><b>Añadir</b></td> \n";
echo "</tr> \n";
while ($row = mysql_fetch_row($result)){
echo "<tr> \n";
echo "<td>$row[0]</td> \n";
echo "<td>$row[1]</td> \n";
echo "<td>$row[2]</td> \n";
echo "<form name='form' action='eliminarTipoComponente.php' method='post' onsubmit='return confirmar()';>\n";
echo "<input type='hidden' name='codigo_borrar' value='$row[0]'> \n";
echo "<td><input type='submit' name='Submit' value='Eliminar' /></td> \n";
echo "</form> \n";
echo "<form name='form' action='modificarComponente.php' method='post'>\n";
echo "<input type='hidden' name='codigo_modificar' value='$row[0]'> \n";
echo "<td><input type='submit' name='Submit' value='Modificar' /></td> \n";
echo "</form> \n";
echo "</tr> \n";
}
echo "<tr> \n";
echo "<td>$row[0]</td> \n";
echo "<td>$row[1]</td> \n";
echo "<td>$row[2]</td> \n";
echo "</tr> \n";
?>
<th scope="row"><div align="center">
<form name="formulario2" method="post" action="alta_kit.php" onmouseover="damevalor();">
<input type="hidden" name="campo2" id="campo2"/>
<select name="componentes" id="componentes" onchange="document.getElementById('codcomponente').value=this.options[this.selectedIndex].value">
<?php
//OBTENER LOS VALORES DE LAS FILAS
$sql = "SELECT codigo_componente, componente, Desc1, Desc2, Comentario FROM componentes ORDER BY codigo_componente ASC";
$resul = mysql_query($sql, $link) or die ( mysql_error() );
$opt = '<option value = "%s">%s %s %s %s</option>';
// El especificador s del sprintf presenta una cadena de caracteres.
//RECORRIDO DEL CURSOR
while($row = mysql_fetch_array($resul))
{
echo sprintf($opt, $row[0], $row[1], $row[2], $row[3], $row[4]);
}
?>
</select></td>
<input type="text" name="codcomponente" id="codcomponente" style="visibility: hidden" />
<td> <input type="text" name="unidades" id="unidades" /> </td>
<td> <input name="Añadir" type="submit" id="anadir" value="Añadir" /> </td>
</form>
</body>
</html>
Código:
El valor de $campo3 no existe, imagino que será porque el formulario anterior se ha reenviado...alguien sabría como solucionar esto???? Es que llevo ya 4 semanas y no lo saco :($result = mysql_query("SELECT * FROM kit where Practica = '$campo3'");
Gracias por adelantado
Saludos