2011-03-25 7 views
6

Quiero utilizar los botones A-Z en una página HTML, como se muestra a continuación (sólo muestra y algunas palabras)¿Cómo publico el valor del botón en PHP?

<INPUT TYPE="BUTTON" VALUE=" A " ONCLICK="A"> 
<INPUT TYPE="BUTTON" VALUE=" B " ONCLICK="B"> 
<INPUT TYPE="BUTTON" VALUE=" C " ONCLICK="C"> 
<INPUT TYPE="BUTTON" VALUE=" D " ONCLICK="D"> 
<INPUT TYPE="BUTTON" VALUE=" E " ONCLICK="E"> 
<INPUT TYPE="BUTTON" VALUE=" F " ONCLICK="F"> 
<INPUT TYPE="BUTTON" VALUE=" G " ONCLICK="G"> 
<INPUT TYPE="BUTTON" VALUE=" H " ONCLICK="H"> 
<INPUT TYPE="BUTTON" VALUE=" I " ONCLICK="I"> 
<INPUT TYPE="BUTTON" VALUE=" J " ONCLICK="J"> 

al hacer clic en cada botón Quiero publicar los valores respectivos de botón a una variable de PHP.

¿Cómo puedo hacer esto?

+2

El 'ONCLICK =' se utiliza para Javascript. Listar los valores allí de nuevo es innecesario. – mario

+0

Realmente necesita minúsculas para todos los atributos de etiqueta. 'input' en lugar de' INPUT'. – crmpicco

Respuesta

12

Cambiar el type a submit y darle un name (y eliminar lo inútil y onclick a toda máquina las etiquetas/los atributos del estilo de los años 90).

<input type="submit" name="foo" value="A" /> 
<input type="submit" name="foo" value="B" /> 
... 

El valor estará disponible por $_POST['foo'] (si el padre tiene una <form>method="post").

+1

pero su tipo es "botón" y no "enviar"? lo intenté con el botón de tipo y $ _POST pero no funciona –

+2

@ baTimá: Use 'type =" submit "' entonces, exactamente como se explica en la respuesta. – BalusC

+0

pero en mi FORMULARIO ya tengo un botón de enviar por lo que no puedo tener 2 enviar –

6

darles a todos un nombre que es el mismo

Por ejemplo

<input type="button" value="a" name="btn" onclick="a" /> 
<input type="button" value="b" name="btn" onclick="b" /> 

A continuación, en el uso de php:

$val = $_POST['btn'] 

Editar, como dijo BalusC; Si no va a utilizar onclick para hacer cualquier Javascript (por ejemplo, el envío del formulario) y luego deshacerse de él y utilizar type="submit"

1

Tenga en cuenta que lo que obtiene en una POST en el lado del servidor es un par clave-valor. Tienes valores, pero ¿dónde está tu llave? En este caso, querrá establecer el atributo name de los botones para que haya una tecla para acceder al valor.

Además, de acuerdo con las convenciones, tendrá que cambiar el type de estos input s (botones) a submit para que fijen sus valores a la forma adecuada.

Además, ¿cuál es su onclick haciendo?

3

Como Josh ha indicado anteriormente, quiere darles el mismo nombre (letra, botón, etc.) y todos funcionan. Entonces usted quiere rodear todos estos productos con una etiqueta de formulario:

<form name="myLetters" action="yourScript.php" method="POST"> 
<!-- Enter your values here with the following syntax: --> 
<input type="radio" name="letter" value="A" /> A 
<!-- Then add a submit value & close your form --> 
<input type="submit" name="submit" value="Choose Letter!" /> 
</form> 

Luego, en el script PHP "yourScript.php" según lo definido por el atributo de acción, puede utilizar:

$_POST['letter'] 

Para obtener el valor elegido.

+0

Solo agregará que POST no funciona sin

etiqueta. – nvd

-1
$restore = $this->createElement('submit', 'restore', array(
     'label' => 'FILE_RESTORE', 
     'class' => 'restore btn btn-small btn-primary', 
     'attribs' => array(
      'onClick' => 'restoreCheck();return false;' 
     ) 
    )); 
+5

Bienvenido a SO. Es una buena práctica explicar el código en sus respuestas. – Tim

Cuestiones relacionadas