Índice indefinido html

Soy nuevo en html, así que no estoy seguro de dónde estoy yendo mal, pero tengo el siguiente código (estoy creando un formulario y agregando valores a la base de datos cuando el usuario presiona enviar).

una checkbox anidada en una forma –

  

y cuando el usuario presiona ‘agregar botón’ estoy tratando de obtener el valor y almacenarlo en una variable, pero no puede encontrar ‘choice1’.

$ choice1 = $ _ POST [‘choice1’];

pero obtengo ” índice indefinido: choice1 “. ¿Por qué es esto?

Si la checkbox está marcada, el navegador envía su valor con otras variables.

Si no está marcado, no se envía.

Hacer esto:

 $choice1 = isset($_POST['choice1']) ? $_POST['choice1'] : 0; 

Hay dos cosas que pueden salir mal aquí:

  1. Si el formulario no tiene el method atributo configurado para post , los datos se pasan en la URL (puede verificar si ese es el caso). En ese caso, los valores están en $ _GET en lugar de $ _POST.
  2. Las casillas de verificación que no están marcadas no pasan un valor. Si la checkbox está marcada, se transmite (u otro valor, si la anulas) pero si no lo haces, no obtienes el valor, por lo que no puedes leerlo en PHP. Puede verificar si el valor existe usando array_key_exists('choice1', $_POST) . Si no sabe, la checkbox no está marcada.
  1. Asegúrese de que su formulario use POST (no GET), de lo contrario, $_POST estará vacío. Por ejemplo:

  2. Haga una print_r($_POST) para ver si hay algo dentro de $_POST .
  3. Como dice Matt en los comentarios, asegúrese de tener para enviar su formulario.

Si haces algo como esto debería funcionar:

  
..... .....

Comprueba si tu código es el mismo … Otherwhise publica más código para echar un vistazo a …