Cómo publicar una matriz multidimensional de botones de opción y casillas de verificación en MySQL usando PHP sin alterar los índices

Si le da a cada uno de los botones de radio y casillas de verificación una potencia única de dos valores, puede agregar los valores de todas las casillas marcadas y los botones elegidos, y enviarlos como un solo número. En el servidor puede almacenar ese número en un solo campo en un registro MySQL.

Invertiendo eso, tendría que lógicamente Y el número con cada valor para una casilla de verificación o botón de opción y marcar o seleccionar ese elemento si obtiene algo distinto de 0. (Un número puede considerarse como una matriz de bits).

Por lo tanto, un cero es una indicación de que la casilla de verificación no está marcada, no es tan difícil “enviar un elemento que no tiene un valor”, porque el envío de 0 indica que no hay casillas de verificación marcadas y que no hay botones de radio seleccionados (que, si tiene JavaScript no verifica los conjuntos de botones de opción que son opciones obligatorias).

No publicas matrices en MySQL. Publica en un script PHP que luego transforma la matriz en una instrucción SQL para su inserción. Es difícil saber exactamente lo que quieres decir cuando dices sin desordenar los índices. Supongo que está tratando de actualizar el estado de varias casillas de verificación / radios como una acción masiva en una tabla o conjunto de elementos. Si no lo eres, esto debería acercarte bastante.

En su pantalla HTML (está utilizando un motor de plantillas, ¿verdad?), Necesitará hacer un bucle de su matriz de valores para radios y comprobaciones y dar a cada uno un nombre único que PUBLICARÁ como una matriz para su secuencia de comandos. Para cada elemento que desee POSTAR eventualmente, necesita un elemento como este:

Cuando PUBLICA en su script, obtendrá una matriz que se ve así:

Formación(
“radios” => Array (
3 => ‘en’,
47 => ‘apagado’,
53 => ‘correo electrónico’
);
);

junto con todos los demás datos PUBLICADOS de su formulario. Notarás que puedes tener prácticamente cualquier valor que esté en el atributo de valor, por lo que usar la combinación de radios y casillas de verificación generalmente no será un problema (especialmente porque hacen exactamente la misma función en términos de indicar y cambiar estado). Sus diferencias están basadas exclusivamente en UX.

Sin embargo, ahora tienes un problema. Cuando desmarca una casilla de verificación o una radio, no se enviarán los elementos HTMLE que no tengan un valor. Tendrá que encontrar una forma de atrapar la pérdida de un cheque o selección. Para ayudarte con eso, te doy un koan de programación Zen.

¿Cual es el sonido de una mano aplaudiendo? El mismo sonido que PUBLICAR una ausencia de datos.

No debe mezclar radios y cheques porque la radio representa un solo valor y los cheques representan múltiples opciones elegidas para el mismo parámetro.

Para serializar la radio a un mysql, una base de datos relacional, es una relación de uno a muchos, cheques es una relación de muchos a muchos.

Debe aclarar exactamente lo que está tratando de hacer, pero generalmente no desea colocar matrices multidimensionales en bases de datos SQL. En cambio, debe pensar en los datos reales que necesita y la forma más sencilla de almacenarlos / recuperarlos.

No estoy exactamente seguro de lo que está tratando de lograr, pero en aras de almacenar una matriz multidimensional en una base de datos, simplemente puede serializar la matriz y almacenarla en un campo BLOB.

Espero que esto ayude.