Foros del Web » Programando para Internet » PHP »

Arrays

Estas en el tema de Arrays en el foro de PHP en Foros del Web. Amigos: Queria preguntarles lo siguiente: Estoy armando un sistema cuya finalidad es recoger titulos de peliculas y colocarles un horario, para luego ser publicadas en ...
  #1 (permalink)  
Antiguo 23/08/2004, 15:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 21 años, 1 mes
Puntos: 0
Arrays

Amigos:
Queria preguntarles lo siguiente:

Estoy armando un sistema cuya finalidad es recoger titulos de peliculas y colocarles un horario, para luego ser publicadas en otra pagina.

El sistema consta de un listado de titulos, cada uno con un checkbox y una entrada de texto, el usuario selecciona mediante el checkbox los titulos que desea, y luego introduce un texto en cada casillero (el horario y algun detalle de la pelicula).

Una vez hecha a seleccion de titulos y el ingreso de los textos envio los datos en forma de array a un procesador, que me los escribe en pantalla.

El tema es que si yo NO selecciono un titulo, pero SI relleno el texto el form igualmente me genera un indice en el array, por ende
en la pagina donde se muestran los resultados me aparecen campos de texto de mas.

La manera de pasar los datos funciona asi: genero dos arrays, uno tiene los titulos seleccionados. El segundo array envia los textos. En el script receptor hago dos "foreach" y los resultados los coloco en una tabla, quedando paralelos.

Mi pregunta es si puedo crear un solo array, que contenga el titulo y el texto, para luego imprimir en pantalla ambos datos con un solo "foreach".

El codigo que uso es:
Generador/selector:
Código HTML:
<?
//Conexion con la base
 include("../conex.php"); 
   $link=Conectarse();

?>
<form action="procesador.php" method="post" enctype="application/x-www-form-urlencoded" target="_self">
<?
# CREO UN LISTADO DE LAS SALAS EXISTENTES EN LA BASE DE DATOS.
# CADA SALA GENERA UN TITULO, UN CHECKBOX Y UN INPUT TEXT.
# UN BOTON DE VOLVER ME ENVIA LOS DATOS.
# EL ENVIO SE REALIZA EN FORMA DE ARRAY.

$sSQL="SELECT salas FROM tabla ORDER BY salas ASC";
$result=mysql_db_query("base_de_datos" , $sSQL , $link );

while ($row=mysql_fetch_array($result))
       {
 echo '
<table width="100%"  border="0" cellspacing="10" cellpadding="0">
  <tr>
    <td align="left" valign="top">	   
        <input type="checkbox" name="disponible[]" value="'.$row["salas"].'">
</td>
    <td align="left" valign="top" width="30%">
        '.$row["salas"].'
</td>
    <td align="left" valign="top">
         <textarea name="disponible_text[]" cols="50" rows="2" id="disponible_text[]"></textarea>
</td>
  </tr>
</table>';
        };

?>
<input name="disponible1" type="submit" value="Enviar">
</form> 


Receptor:
Código HTML:
<title>SALAS SELECCIONADAS</title>

<table width="50%"  border="0" align="center" cellpadding="0" cellspacing="10">
  <tr>
        <td width="25%">
<?
if($_POST["checkbox"]);
# IMPRIMO EN PANTALLA EL NOMBRE DE LA SALA Y EL TEXTO AGREGADO.  
      foreach($_POST["disponible"] as $indice1 => $valor1)
      {echo''.$valor1.''; echo''.$indice1.'<br>';};
?></td>
        <td>
<?
	  foreach($_POST["disponible_text"] as $indice2 => $valor2)
      {echo''.$valor2.'';echo''.$indice2.'<br>';};
?></td>
      </tr>
    </table> 
DESDE YA MUCHAS GRACIAS!!!!!
  #2 (permalink)  
Antiguo 23/08/2004, 16:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tendrías que usar un bucle tipo for() (no foreach para este caso) para usar el mismo indice en ambos arrays y accederlos en "paralelo" no recorrer uno y luego el otro array como haces ahora ..

Código PHP:
for ($i=0$i <= count($_POST['disponible'); $i++){
    echo 
$_POST['disponible']." --> ".$_POST['disponible_text']."<br>"

se supone que el array "disponible" (tus checkbox) son los que mandan .. es decir, los que seleccionas son los que pasan a tu script PHP de proceso y en consecuencia debería "pasar" (enviarse) también su "texto" relacionado. Los demás .. serán descartados si no se seleccionaron (el checkbox).

Un saludo,
  #3 (permalink)  
Antiguo 28/08/2004, 17:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 21 años, 1 mes
Puntos: 0
Cluster,muchas gracias por tu respuesta.
Implemente el script que me sugeriste, pero surge el siguiente problema y no se bien porque: la pagina con los resultados me muestra:

Array --> Array
Array --> Array
Array --> Array


Teoricamente el bucle "for" deberia "desarmar" el array.no?
Se te ocurre que puedo llegar a hacer? intente varias soluciones, pero ninguna funcionó.

Desde ya muchas gracias!
  #4 (permalink)  
Antiguo 28/08/2004, 19:15
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Corrigiendo:
Código PHP:
for ($i=0$i <= count($_POST['disponible'); $i++){
    echo 
$_POST['disponible'][$i]." --> ".$_POST['disponible_text'][$i]."<br>";

Saludos
  #5 (permalink)  
Antiguo 30/08/2004, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
OPS! .. grácias jpinedo .. se me quedó por el camino el indice de los arrays xDD.

Un saludo,
  #6 (permalink)  
Antiguo 31/08/2004, 15:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 21 años, 1 mes
Puntos: 0
muchas gracias amigos! resulto!
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 12:55.