Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2009, 10:01
Avatar de rudy69
rudy69
 
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
no entiendo comparacion ==, operador logico

Buenas, tengo una duda en como interpreta PHP el siguiente ejercicio, podes copiar el codigo se adaptara con facilidad para poder ver el problema con mas claridad:

Código PHP:
<form name="form1" action="" method="get">
    <select name="cosa">
<?php
$OptionsTableShow 
= array(
    
'1-2-3-4-5-6' => 'Todos las opciones',
    
1              => 'Opcion 1',
    
2              => 'Opcion 2',
    
3              => 'Opcion 3',
    
4              => 'Opcion 4',
    
5              => 'Opcion 5',
    
6              => 'Opcion 6');

foreach(
$OptionsTableShow as $_value => $_name) {
    
$tmp = ($_value == $_REQUEST['cosa']) ? ' selected="selected"' NULL;
    echo 
'        <option value="' $_value '"' $tmp '>' htmlentities($_name) . "</option>\n";
}
?>
    </select>
    <input type="submit" name="submit">
</form>
El problema es que cuando se hace submit, el loop foreach va a revisar que options se ha seleccionado, el problema es que si selecciono el numero uno con valor: "1-2-3-4-5-6" me selecciona tambien el segundo con valor: "1". Evidentemente no hay ningun valor repetido, porque toma como true (1 == 1-2-3-4-5-6).

He probado lo siguiente, sustituyendo los guines por comas(,), puntos(.), dos puntos(:) y no funciona, he probado forzando a string la cadena ($_value == (string)$_REQUEST['cosa']), y no funciona, que sera??