Foros del Web » Programando para Internet » PHP »

ayudita con isset

Estas en el tema de ayudita con isset en el foro de PHP en Foros del Web. <?php if(isset($_POST['foo'])){ $sel_foo[$_POST['foo']] = ' selected="selected"'; } ?> <select name="foo"> <option value="candy"<? if(isset($_POST['foo'])){ echo $sel_foo['candy'] ;}?>>Candy</option> <option value="bar"<?= $sel_foo['bar'] ?>>BAR</option> <option value="does"<?= $sel_foo['does'] ?>>Does</option> <option ...
  #1 (permalink)  
Antiguo 11/06/2009, 03:39
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
ayudita con isset

<?php

if(isset($_POST['foo'])){
$sel_foo[$_POST['foo']] = ' selected="selected"';
}
?>

<select name="foo">
<option value="candy"<? if(isset($_POST['foo'])){ echo $sel_foo['candy'] ;}?>>Candy</option>
<option value="bar"<?= $sel_foo['bar'] ?>>BAR</option>
<option value="does"<?= $sel_foo['does'] ?>>Does</option>
<option value="nothing"<?= $sel_foo['nothing'] ?>>Nothing</option>
</select>

pues con el isset quiero eviat que no me salga el mensaje de error:

undefined index: candi in....
undefined index: bar in....
undefined index: does in....
undefined index: nothing in....

intente de usar el isset resolver el error, pero no me acaba de ir bien..

gracias!
  #2 (permalink)  
Antiguo 11/06/2009, 04:04
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: ayudita con isset

Hola Pitufet,

El isset te está funcionando bien. El problema lo tienes en que estás usando el acceso al array $sel_foo[] sin tenerlo previamente declarado; es decir, intentas acceder a $sel_foo['candy'], $sel_foo['does'] y $sel_foo['nothing'], que no existen. Para que te funcione, antes debes declarar el array:

Código PHP:
<?php
$sel_foo 
= array('candy' => ' selected=""',
                           
'bar' => ' selected=""',
                           
'does' => ' selected=""',
                           
'nothing' => ' selected=""'
                           
);
if(isset(
$_POST['foo'])) {
    
$sel_foo[$_POST['foo']] = ' selected="selected"';
...
?>
Un saludo,
Carlos.

Última edición por ruizdeeguilaz; 11/06/2009 a las 04:05 Razón: Eliminada la cita, que no aportaba nada
  #3 (permalink)  
Antiguo 11/06/2009, 04:22
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ayudita con isset

Código HTML:
<?php
$sel_foo = array('candy' => ' selected=""',
                           'bar' => ' selected=""',
                           'does' => ' selected=""',
                           'nothing' => ' selected=""'
                           );
if(isset($_POST['foo'])){
$sel_foo[$_POST['foo']] = ' selected="selected"';
}
?>

<select name="foo">
  <option value="bar"<?= $sel_foo['bar'] ?>>BAR</option>
  <option value="does"<?= $sel_foo['does'] ?>>Does</option>
  <option value="nothing"<?= $sel_foo['nothing'] ?>>Nothing</option>
</select> 
ok, gràcias, ahora no me da el error, però siempre te entro de nuevo en la pagina me sale pues el valor nothing por defecto, còmo puedo hacer que el valor por defecto que salga sea el que ha escogido el usuario??

es para que cuando el registro a mi web, no haya tenido exito por cualquier error en alguna otra dada, el usuario no tenga de escojer de nuevo la opcion

muchas gracias por la ayuda
  #4 (permalink)  
Antiguo 11/06/2009, 04:36
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: ayudita con isset

Puedes ponerlo con un else:

Código PHP:
<?php
$sel_foo 
= array('candy' => ' selected=""',
                           
'bar' => ' selected=""',
                           
'does' => ' selected=""',
                           
'nothing' => ' selected=""'
                           
);
if(isset(
$_POST['foo'])){
$sel_foo[$_POST['foo']] = ' selected="selected"';
}
else
{
$sel_foo['candy'] = ' selected="selected"';
}
?>

<select name="foo">
  <option value="bar"<?= $sel_foo['bar'?>>BAR</option>
  <option value="does"<?= $sel_foo['does'?>>Does</option>
  <option value="nothing"<?= $sel_foo['nothing'?>>Nothing</option>
</select>
Salu2,
Carlos.
  #5 (permalink)  
Antiguo 11/06/2009, 04:44
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ayudita con isset

gracias

pero todavia me pone el valor por defecto de nothing :S, al coger otro valor al hacer de nuevo el submit me pone por defecto nothing...

si me puedes ayudar! gracias
  #6 (permalink)  
Antiguo 11/06/2009, 05:20
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: ayudita con isset

Inicializa los valores del array a la cadena vacía ('') en lugar de a 'select=""'. En el código que te puse falta la opción para "candy", tenlo en cuenta.

Salu2,
Carlos.
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 18:37.