es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtén el valor serializado del formulario a partir de la lista de arreglos.

Tengo un array como este:

Array
(
    [action_name] => editar
    [formData] => color=rojo&tamaño=completo&simetría=cuadrado&simetría=círculo&simetría=óvalo
)

Aquí, los datos del formulario se obtienen utilizando el método serialize de JS y se muestran como se indica arriba. Quiero obtener cada dato de la clave formData. ¿Cómo puedo hacer eso?

He intentado:

$_POST['formData']['color']

Pero eso no funciona. Creo que el método para obtener esto debe ser diferente. ¿Cómo puedo hacerlo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener cada dato de la clave formData, primero puedes utilizar las funciones urldecode y parse_str de PHP en $_POST['formData'] de la siguiente manera:

    $formData = urldecode($_POST['formData']);
    parse_str($formData, $formDataArr);
    

    Esto te dará un arreglo $formDataArr que contiene todos los pares clave-valor en formData. Luego puedes acceder a cada valor utilizando su clave de la siguiente manera:

    echo $formDataArr['color']; // muestra "red"
    echo $formDataArr['size']; // muestra "full"
    echo $formDataArr['symmetry']; // muestra "oval" (ya que es el último valor para la clave "symmetry")
    

    Observa que dado que symmetry tiene múltiples valores, solo se almacenará el último valor en $formDataArr['symmetry']. Si deseas obtener todos los valores para una clave, puedes utilizar la función explode de la siguiente manera:

    $symmetryArr = explode(',', $formDataArr['symmetry']);
    print_r($symmetryArr); // muestra Array ( [0] => square [1] => circle [2] => oval )
    

Comments are closed.