Ver Mensaje Individual
  #8 (permalink)  
Antiguo 01/09/2003, 22:11
leonardop
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 20 años, 9 meses
Puntos: 1
Cita:
Desde que hice el post me parecio que la solucion al chicharron era ELEGIR a cuales campos imprimir y a cuales no
Sí, creo haber entendido este punto desde un comienzo. Por eso en un mensaje anterior te comenté:

(..) Nota que hay una matriz ($campos) que es declarada con los nombres de los campos que serán procesados por el script. En el ejemplo se encuentran dos campos, pero podrían ser más.


La idea de esa variable (la matriz $campos) es precisamente que se pueda elegir cuáles campos mostrar.

Veamos una modificación más del script, teniendo en cuenta este modelo de elección nuevamente:

Código:
<table>
 <tr>
  <td colspan="3" align="center">Estos son los datos:</td>
 </tr>

<?php

// Definimos explicitamente los campos que van a mostrarse
$campos = array ('Comentario', 'Planeta', 'Numero');


foreach ($campos as $var) {
    $val = $_POST[$var];

    if (preg_match ('/^(.*)\\[(.*)\\]/', $val, $coincidencias)) {
        $cadena1 = $coincidencias[1];
        $cadena2 = $coincidencias[2];
    } else {
        $cadena1 = $val;
        $cadena2 = '';
    }

    $cadena1 = ereg_replace("\n", "<BR>", $cadena1);

    echo <<<FIN
 <tr>
  <td bgcolor="#AABBCC" valign="top" align="right">$var:</td>
  <td bgcolor="#FFD098" valign="top">$cadena1</td>
  <td bgcolor="#FFB878" valign="top">$cadena2</td>
 </tr>
FIN;
}

?>

</table>


<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<textarea cols="14" rows="4" name="Comentario"></textarea>

<select name="Planeta" size="1">
<option selected value="Planeta: No">
Selecciona un planeta:</option>
<option value="Saturno [ Sabado ]">Saturno [ Sabado ]</option>
<option value="Venus [ Viernes ]">Venus [ Viernes ]</option>
<option value="Jupiter [ Jueves ]">Jupiter [ Jueves ]</option>
</select>

<input type="hidden" name="CHICHARRON" value="Esto debe verse?: NO" />

<select name="Numero" size="1">
<option selected value="Numero: No">Selecciona un numero:</option>
<option value="1 [ Domingo ]">1 [ Domingo ]</option>
<option value="2 [ Lunes ]">2 [ Lunes ]</option>
<option value="3 [ Miercoles ]">3 [ Miercoles ]</option>
</select>

<input type="submit" value="Enviar" />
</form>

En este caso, como existen tres campos que deben ser mostrados, contra uno solo que debe permanecer escondido, quizás sería más cómodo definir mejor aquellos campos que deben excluirse, en cuyo caso la lógica del ciclo se modificaría ligeramente. Por ejemplo:

Código:
// Definimos explicitamente los campos que _no_ deben mostrarse
$campos_a_excluir = array ('CHICHARRON');


while ((list ($var, $val) = each ($_POST))) {
    if (in_array ($var, $campos_a_excluir))
        continue;

    if (preg_match ('/^(.*)\\[(.*)\\]/', $val, $coincidencias)) {
        $cadena1 = $coincidencias[1];
        $cadena2 = $coincidencias[2];
    } else {
        $cadena1 = $val;
        $cadena2 = '';
    }

    $cadena1 = ereg_replace("\n", "<BR>", $cadena1);

    echo <<<FIN
 <tr>
  <td bgcolor="#AABBCC" valign="top" align="right">$var:</td>
  <td bgcolor="#FFD098" valign="top">$cadena1</td>
  <td bgcolor="#FFB878" valign="top">$cadena2</td>
 </tr>
FIN;
}

Saludos