Foros del Web » Programando para Internet » PHP »

Listas, busquedas y mantener datos

Estas en el tema de Listas, busquedas y mantener datos en el foro de PHP en Foros del Web. Hola. Tengo un codigo para un form de alta de personas, que hace dos consultas antes de ser enviado. La primera es una busqueda de ...
  #1 (permalink)  
Antiguo 09/10/2008, 11:54
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Listas, busquedas y mantener datos

Hola. Tengo un codigo para un form de alta de personas, que hace dos consultas antes de ser enviado. La primera es una busqueda de apellidos para encontrar a su padre/madre, que trae una lista con los resultados de esa consulta. La otra es para encontrar a su conyugue.
Esto anda bien, me trae los resultados, y los lista en AMBOS casos. Y son necesarios ya que de esta manera relacionaré a esa persona con sus antecesores y sucesores ya que es una base genealogica.
Ahora bien. Si hago la busqueda de padre y encuentro uno, lo elijo en el listbox, pero al buscar el conyugue, desaparece la lista del padre que hice previamente.
Mi pregunta es como hacer que permanezca alli, o como hacer que al traer la primer busqueda y elija el correspondiente, se pase a un textbox y quede fijo para hacer la segunda busqueda.
Espero se entienda!!!
Gracias de antemano!




<?php
//datos DB
require("configuracion.php");

$bd_tabla = "datos";

//conexión
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);
mysql_select_db($bd_bdname,$link);
?>


<body>
<p>&nbsp;</p>
<form id="form12" name="form12" method="post" action="">
<table width="700" border="0" cellspacing="3" cellpadding="0">
<tr>
<td width="166" class="Estilo5 Estilo1 Estilo4">Sexo:</td>
<td width="525" class="Estilo3"><input name="radiobutton" type="radio" value="radiobutton" />
Femenino
<input name="radiobutton" type="radio" value="radiobutton" />
Masculino</td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Nombre y apellido: </td>
<td class="Estilo3"><input name="nombre" type="text" id="nombre" /></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Fecha de nacimiento: </td>
<td class="Estilo3"><input name="fena" type="text" id="fena" /></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Lugar de nacimiento: </td>
<td class="Estilo3"><input name="luna" type="text" id="luna" /></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Fecha de fallecimiento: </td>
<td class="Estilo3"><input name="femu" type="text" id="femu" /></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Lugar de fallecimiento: </td>
<td class="Estilo3"><input name="lumu" type="text" id="lumu" /></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Fecha casamiento: </td>
<td class="Estilo3"><input name="cafe" type="text" id="cafe" /></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Lugar de casamiento: </td>
<td class="Estilo3"><input name="calu" type="text" id="calu" /></td>
</tr>
<tr>
<td class="Estilo5"><span class="Estilo3">Apellido de padre o madre:</span></td>
<td class="Estilo3"><input name="mrinpadres" type="text" onkeypress="return handleEnter(this, event)" class="Estilo1" size="25" />
<input name="buscar0" type="submit" class="Estilo1" value="buscar" />
<?php
//if 1: si apreto
if(isset($_POST['buscar0'])) {
//if 2: si puso algo
if($_POST ["mrinpadres"]<>""){
$repetido=0;
$a=$_POST ["mrinpadres"];
$a=ucwords(strtolower($a));
$query = "SELECT distinct id,apellido,mrin,mrinpadres FROM datos WHERE apellido LIKE '%$a%' order by apellido";
$resu = mysql_query($query) or die (mysql_error());
//if 3: si trae resultados
if (mysql_num_rows($resu) > 0) {

echo "<font class=Estilo1>Seleccione:</font>";
echo '<select name="milistbox">';
while ($row = mysql_fetch_row ($resu)) {
$id = $row['id'];
$apellido = $row['apellido'];
$matrimonio = $row['mrin'];
$padres = $row['mrinpadres'];
$fena = $row['fena'];
$comparar_a[$repetido]= $row['id'];

echo "<option value=\"".$row[0]."\">".$row[1]."</option>\n";
}
echo '</select>';
}
//fin if 3
else
{ echo "<font class=Estilo1>No hay resultados para su busqueda. Intentelo nuevamente modificando la busqueda.</font>";
}
}
//fin if 2
else
{ echo "<font class=Estilo1>Ingrese un apellido.</font>";}
//fin if 1
}
?></td>
</tr>
<tr>
<td class="Estilo5 Estilo1 Estilo4">Apellido c&oacute;nyugue:</td>
<td class="Estilo3"><input name="mrin" type="text" class="Estilo1" id="mrin" onkeypress="return handleEnter(this, event)" size="25" />
<input name="buscar02" type="submit" class="Estilo1" value="buscar" />
<?php
//if 1: si apreto
if(isset($_POST['buscar02'])) {
//if 2: si puso algo
if($_POST ["mrin"]<>""){
$repetido=0;
$a=$_POST ["mrin"];
$a=ucwords(strtolower($a));
$query = "SELECT distinct id,apellido,mrin,mrinpadres FROM datos WHERE apellido LIKE '%$a%' order by apellido";
$resu2 = mysql_query($query) or die (mysql_error());
//if 3: si trae resultados
if (mysql_num_rows($resu2) > 0) {

echo "<font class=Estilo1>Seleccione:</font>";
echo '<select name="milistbox2">';
while ($row = mysql_fetch_row ($resu2)) {
$id = $row['id'];
$apellido = $row['apellido'];
$matrimonio = $row['mrin'];
$padres = $row['mrinpadres'];
$fena = $row['fena'];
$comparar_a[$repetido]= $row['id'];

echo "<option value=\"".$row[0]."\">".$row[1]."</option>\n";
}
echo '</select>';
}
//fin if 3
else
{ echo "<font class=Estilo1>No hay resultados para su busqueda. Intentelo nuevamente modificando la busqueda.</font>";
}
}
//fin if 2
else
{ echo "<font class=Estilo1>Ingrese un apellido.</font>";}
//fin if 1
}
?></td>
</tr>

<tr>
<td class="Estilo5 Estilo1 Estilo4">&nbsp;</td>
<td class="Estilo3"><input type="submit" name="Submit2" value="Enviar" /></td>
</tr>
</table>
</form>*
  #2 (permalink)  
Antiguo 09/10/2008, 12:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Listas, busquedas y mantener datos

Primero procesa los datos para saber que es lo que presentaras... en este caso use la variable $info_mrin para almacenar todo lo correspondiente a mrinpadres

Código PHP:
<?php
// Asigna el valor por default para presentar el campo de busqueda
$info_mrin '<input name="mrinpadres" type="text" onkeypress="return handleEnter(this, event)" class="Estilo1" size="25" /><input name="buscar0" type="submit" class="Estilo1" value="buscar" />';
if(
$_POST['mrinpadres'] != ''){
        
// Si el contenido no es una cadena vacia se realiza la busqueda
    
$repetido=0;
    
$a=$_POST ["mrinpadres"];
    
$a=ucwords(strtolower($a));
    
$query "SELECT distinct id,apellido,mrin,mrinpadres FROM datos WHERE apellido LIKE '%$a%' order by apellido";
    
$resu2 mysql_query($query) or die (mysql_error());
    if (
mysql_num_rows($resu2) > 0) {
                 
// Crea un campo hidden para almacenar el valor actual
        
$info_mrin '<font class="Estilo1">Seleccione:</font>';
        
$info_mrin .= "<input type=\"hidden\" name=\"mrinpadres\" value=\"{$_POST['mrinpadres']}\" />";
        
$info_mrin .= '<select name="milistbox2">';
        while (
$row mysql_fetch_row ($resu2)) {
            
$id $row['id'];
            
$apellido $row['apellido'];
            
$matrimonio $row['mrin'];
            
$padres $row['mrinpadres'];
            
$fena $row['fena'];
            
$comparar_a[$repetido]= $row['id'];
            
$info_mrin .=  "<option value=\"".$row[0]."\">".$row[1]."</option>\n";
        }
        
$info_mrin .=  '</select>';
    } else {
                
// No se obtuvieron resultados de la consulta
        
$info_mrin '<input name="mrinpadres" type="text" value="' $_POST['mrinpadres'] . '" onkeypress="return handleEnter(this, event)" class="Estilo1" size="25" /><input name="buscar0" type="submit" class="Estilo1" value="buscar" />';
        
$info_mrin .= 'Tu búsqueda no generó resultados.';
    }
}

// En html se agrega posteriormente el campo tal como se creo al hacer el analisis
?>

<td class="Estilo5"><span class="Estilo3">Apellido de padre o madre:</span></td>
<td class="Estilo3"><?php echo $info_mrin?></td>
  #3 (permalink)  
Antiguo 09/10/2008, 13:02
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 8 meses
Puntos: 105
Respuesta: Listas, busquedas y mantener datos

amiga creo que sin rodeos lo solucionas si al buscar el conyuge le pasas el valor obtenido anteriormente (el padre) o en todo caso lo guardas en session, con el objetivo de que este no se pierda.

bueno y sino tambien si sabes utilizar ajax, seria mas factible y eficaz, pero claro, sin que este cambie toda tu estructura y codificacion ya creada.

buena suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 10/10/2008, 19:48
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Listas, busquedas y mantener datos

Masterojitos, ya me sugirieron usar Ajax, pero realmente aun no lo manejo, y prefiero investigar antes y entenderlo, no copiar algo hecho.....y ahora ya estoy con esto comenzado.

Triby, voy a probar con tu ayuda mañana y te cuento!
Parece lo mejor.

Muchas gracias a ambos!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:02.