Enviar datos por POST con condicional

Tengo un formulario con listas dependientes es decir que cuando selecciono la primera se actualiza la misma página para que me aparescan sus dependientes desde la BD, posteriormente debo enviar esos y otros datos por el método POST para su guardado en la BD, el tema es que todo está en el mismo formulario.
Traté de solucionarlo de este modo pero el código no es correcto:
<? If(isset($_POST['select6']) or isset($_POST['select7'])){ ?>
<form id="form1" name="form1" method="POST" action=" <? $PHP_SELF ?>" />
<? }else{ ?>
<form id="form1" name="form1" method="post" action="f_comp.php">
<? } ?>
Dónde "select6" es la primera lista de la cual dependerá "select7" y existe un "select8" que depende de "select7".

1 respuesta

Respuesta
1
Primero, la condición debería ser solamente la 7, porque la 8 depende de la 7 y esta de la 6. Osea 6 - 7 - 8.
Segundo, si necesitas los ids de los anteriores deberías guardarlos en un imput type hidden.
Suponiendo que sea Categoria, subcat y seccion.
if ($_POST[Categoria]!=""){
mostrar select 7....
}else{
mostrar select 8...
}
Pues si, necesito los ids de los select6,7 y 8. el problema es que las listas son dependientes y en dos ocaciones se actualizan por action ="$PHP_SELF" y luego lo debo guardar enviandolo a otro archivo con action="f_comp.php" por el mismo formulario.
<? if(isset($_POST['select6']) or isset($_POST['select7'])){ ?>
<form id="form1" name="form1" method="POST" action=" <? $PHP_SELF ?>" />
<? }else{ ?>
<form id="form1" name="form1" method="post" action="f_comp.php">
<? } ?>
<select name="select6" id="select6" onchange="document.getElementById('form1').submit();">
<?php
$result=mysql_query("SELECT * FROM sector");
while($rowi=mysql_fetch_array($result)){ ?>
<option value="<? echo $rowi[0] ?>"
<? if($rowi[0] == $sector){ ?>selected<? } ?>>
<? echo $rowi[1]; ?></option>
<? } ?>
</select>
<select name="select7" id="select7" onchange="document.getElementById('form1').submit();">
<?php
if(isset($_POST['select6'])){
$sql="SELECT * FROM subsector WHERE id_sector='".$_POST['select6']."'";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
$valor7=$row['id_subsector'];
$descrip7=$row['subsector'];
echo "<option value=\"$valor7\">$descrip7</option>"; }
}else{
$sq=mysql_query("SELECT * FROM subsector WHERE id_sector = '$sector'");
while($rows=mysql_fetch_array($sq)){ ?>
<option value="<? echo $rows[0] ?>"
<? if($rows[0] == $subsector){ ?>selected<? } ?>>
<? echo $rows[2]; ?></option>
<? } } ?>
</select>
<select name="select8" id="select8">
<?php
if(isset($_POST['select7'])){
$sql="SELECT * FROM tipo_proy WHERE id_subsector='".$_POST['select7']."'";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
$valor8=$row['id_tipo_proy'];
$descrip8=$row['proyecto'];
echo "<option value=\"$valor8\">$descrip8</option>"; }
}else{
$sql6=mysql_query("SELECT * FROM tipo_proy WHERE id_subsector='$subsector'");
while($rowt=mysql_fetch_array($sql6)){ ?>
<option value="<? echo $rowt[0] ?>"
<? if($rowt[0] == $tipo_proy){ ?>selected<? } ?>>
<? echo $rowt[2]; ?></option>
<? } } ?>
</select>
<input name="guardar" type="submit" id="guardar" value=" Guardar " />
Espero este código ayude.
A ver si funciona...
<? if(isset($_POST['select6']) or isset($_POST['select7'])){ ?>
<form id="form1" name="form1" method="POST" action=" <? $PHP_SELF ?>" />
<? }else{ ?>
<form id="form1" name="form1" method="post" action="f_comp.php">
<? } ?>
<? if(!isset($_POST['select7']){ ?>
<select name="select6" id="select6" onchange="document.getElementById('form1').submit();">
<?php
$result=mysql_query("SELECT * FROM sector");
while($rowi=mysql_fetch_array($result)){ ?>
<option value="<? echo $rowi[0] ?>"
<? if($rowi[0] == $sector){ ?>selected<? } ?>>
<? echo $rowi[1]; ?></option>
<? } } ?>
</select>
<? if(isset($_POST['select6']){ ?>
<select name="select7" id="select7" onchange="document.getElementById('form1').submit();">
<?php
if(isset($_POST['select6'])){
$sql="SELECT * FROM subsector WHERE id_sector='".$_POST['select6']."'";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
$valor7=$row['id_subsector'];
$descrip7=$row['subsector'];
echo "<option value=\"$valor7\">$descrip7</option>"; }
}else{
$sq=mysql_query("SELECT * FROM subsector WHERE id_sector = '$sector'");
while($rows=mysql_fetch_array($sq)){ ?>
<option value="<? echo $rows[0] ?>"
<? if($rows[0] == $subsector){ ?>selected<? } ?>>
<? echo $rows[2]; ?></option>
<? } } }?>
</select>
<? if(isset($_POST['select7']){ ?>
<select name="select8" id="select8">
<?php
if(isset($_POST['select7'])){
$sql="SELECT * FROM tipo_proy WHERE id_subsector='".$_POST['select7']."'";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
$valor8=$row['id_tipo_proy'];
$descrip8=$row['proyecto'];
echo "<option value=\"$valor8\">$descrip8</option>"; }
}else{
$sql6=mysql_query("SELECT * FROM tipo_proy WHERE id_subsector='$subsector'");
while($rowt=mysql_fetch_array($sql6)){ ?>
<option value="<? echo $rowt[0] ?>"
<? if($rowt[0] == $tipo_proy){ ?>selected<? } ?>>
<? echo $rowt[2]; ?></option>
<? } } }?>
</select>
<input name="guardar" type="submit" id="guardar" value=" Guardar " />

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas