Hola a todos:
Soy Javy.
Mi quebradero de cabeza es el siguiente:
- Tengo 4 páginas:
1ª: con un formulario y dos listas desplegables. La segunda lista desplegable no se activa hasta que no se selecciona una opción de la primera lista, que llama a una tabla de la base de datos y muestra, en la segunda lista, las opciones que le corresponden. Uso este código:
mysql_select_db($DATABASE, $idcnx);
$query_CATEGORIAS = "SELECT * FROM categorias ORDER BY textocategorias ASC";
$CATEGORIAS = mysql_query($query_CATEGORIAS, $idcnx) or die(mysql_error());
$row_CATEGORIAS = mysql_fetch_assoc($CATEGORIAS);
$totalRows_CATEGORIAS = mysql_num_rows($CATEGORIAS);
//FIN DE SELECCIÓN
//SELECCIONANDO DE LA BASE DE DATOS PARA SUBCATEGORIAS
$colname_SUBCATEGORIAS = "-1";
if (isset($_POST['categoriasid'])) {
$colname_SUBCATEGORIAS = $_POST['categoriasid'];
}
mysql_select_db($DATABASE, $idcnx);
$query_SUBCATEGORIAS = sprintf("SELECT subcategoriasid, textosubcategorias FROM subcategorias WHERE categoriasid = '%s' ORDER BY textosubcategorias ASC", $colname_SUBCATEGORIAS);
$SUBCATEGORIAS = mysql_query($query_SUBCATEGORIAS, $idcnx) or die(mysql_error());
$row_SUBCATEGORIAS = mysql_fetch_assoc($SUBCATEGORIAS);
$totalRows_SUBCATEGORIAS = mysql_num_rows($SUBCATEGORIAS);
//FIN DE SELECCIÓN
?>
<form name="formulario0" method="post" action="">
<select name="categoriasid" id="categoriasid" onChange="submit()">
<option value="" <?php if (!(strcmp("", $_POST['categoriasid']))){echo "SELECTED";} ?>><?php
$numero_categorias = mysql_num_rows($CATEGORIAS);
?>Hay <?php echo "$numero_categorias"; ?> Categorías</option>
<?php
do {
?>
<option value="<?php echo $row_CATEGORIAS['categoriasid']?>"<?php if (!(strcmp($row_CATEGORIAS['categoriasid'], $_POST['categoriasid']))) {echo "SELECTED";} ?>><?php echo $row_CATEGORIAS['textocategorias']?></option>
<?php
} while ($row_CATEGORIAS = mysql_fetch_assoc($CATEGORIAS));
$rows = mysql_num_rows($CATEGORIAS);
if($rows > 0) {
mysql_data_seek($CATEGORIAS, 0);
$row_CATEGORIAS = mysql_fetch_assoc($CATEGORIAS);
}
?>
</select>
</form></td>
</tr>
<form name="formulario1" action="nueva_lista2.php" method="post">
<tr>
<td>
<select name="subcategoriasid" id="subcategoriasid">
<option value="" <?php if (!(strcmp("", $_POST['subcategoriasid']))) {echo "SELECTED";} ?>>
<?php
$numero_subcategorias = mysql_num_rows($SUBCATEGORIAS);
?>Se han encontrado <?php echo "$numero_subcategorias"; ?> Subcategorías</option>
<?php
do {
?>
<option value="<?php echo $row_SUBCATEGORIAS['subcategoriasid']?>"<?php if (!(strcmp($row_SUBCATEGORIAS['subcategoriasid'], $_POST['subcategoriasid']))) {echo "SELECTED";} ?>><?php echo $row_SUBCATEGORIAS['textosubcategorias']?></option>
<?php
}
while ($row_SUBCATEGORIAS = mysql_fetch_assoc($SUBCATEGORIAS));
$rows = mysql_num_rows($SUBCATEGORIAS);
if($rows > 0) {
mysql_data_seek($SUBCATEGORIAS, 0);
$row_SUBCATEGORIAS = mysql_fetch_assoc($SUBCATEGORIAS);
}
?>
</select>
Lo siento: ya se que es un poco rollo, pero es lo que hay, jeje...
Bueno: como se puede ver en el código, el segundo formulario (en color rojo) manda los resultados a la segunda página.
2ª: en esta página, necesitaba que me recogiese dos variables (en color azul) de la página anterior: categoriasid y subcategoriasid.
A parte de recoger estas variables, hay otro formulario con otra lista desplegable que coge datos de otra tabla diferente de la base de datos:
<form name="formulario2" action="nueva_lista3.php" method="post">
<select name="fabricantesid" id="fabricantesid">
<option value=""><?php
$numero_fabricantes = mysql_num_rows($fabricantes);
?>Hay <?php echo "$numero_fabricantes"; ?> Fabricantes</option>
<?php
while ($fabricante = mysql_fetch_array($fabricantes)) {
$fabricantesid = $fabricante["fabricantesid"];
$fname = $fabricante["textofabricantes"];
echo("<option value='$fabricantesid'>$fname</option>\n");
}
?>
</select>
Más código... ya lo siento...
Este formulario manda los resultados a la tercera página. A parte, necesitaba que me mandase las variables recogidas de la primera página:
categoriasid y subcategoriasid
más la variable fabricantesid (en color verde).
3ª: en esta otra página, hay otro formulario más sencillo con unas cajas de texto donde hay que escribir unos datos.
Necesito que esta página me recoja las tres variables anteriores:
categoriasid, subcategoriasid y fabricantesid
y me las mande con el resto de este formulario, puesto que todos esos datos van a una tabla común de la base de datos.
Por mi parte, lo único que he conseguido hasta ahora es que me aparezcan (con un echo) el número de las variables, pero a la hora de mandar el último formulario, estas variables no las manda...
Gracias por vuestra paciencia. Yo seguiré investigando...
Javy