2011-08-30 13 views
10
<select class="txtbx1" name="country" disabled> 

<option value='FR' >FRANCE</option><option value='CH' selected>SWITZERLAND</option> 
</select> 

el código anterior es dentro de un formulario cuyo método es puesto

pero echo $_POST['country'] está mostrando nada .. Por otro lado si quito desactivar desde selecto $_POST['country'] se muestra el resultado correcto

+0

intento usando 'discapacitados = "desactivado"' en lugar – Teneff

+7

Al deshabilitar un campo, su valor no se envía al servidor. – Guttsy

+0

, entonces qué shud hago en ese caso ... necesito deshabilitar el campo –

Respuesta

0

¿Cómo se ve la etiqueta del formulario? Es posible que haya olvidado el atributo method="post" ...

+0

no lo he hecho .. lo que funciona es que no tengo el atributo "disabled" –

21

Así es como funciona el atributo disabled. Cuando se deshabilita un control de formulario, el valor se ignorará cuando se envíe el formulario y la clave no estará presente en $_POST (o $_GET).

Si desea que el valor esté presente en los datos enviados, pero no desea que el usuario pueda cambiar el valor de la página (que supongo que es lo que está tratando de lograr) use readonly="readonly" en su lugar de disabled="disabled".

EDITAR

El elemento <select> no tiene un atributo readonly. La información anterior sigue en pie, ya que funcionará para <input> sy <textarea> s.

La solución a su problema aquí sería deshabilitar la selección y utilizar una entrada oculta para enviar el valor de vuelta al servidor, p. Ej.

Cuando el selector está habilitado:

<select class="txtbx1" name="country"> 
    <!-- options here --> 
</select> 

... y cuando está desactivada:

<select class="txtbx1" name="country_disabled" disabled="disabled"> 
    <!-- options here, with appropriate value having `selected="selected"` --> 
</select> 
<input type="hidden" name="country" value="value_of_field" /> 
+1

No creo que 'readonly' funcione en' ' s, pero la actualizaré con '