Maison >développement back-end >tutoriel php >Comment soumettre et récupérer efficacement des tableaux multidimensionnels via POST en PHP ?

Comment soumettre et récupérer efficacement des tableaux multidimensionnels via POST en PHP ?

DDD
DDDoriginal
2024-12-03 16:37:16247parcourir

How to Efficiently Submit and Retrieve Multidimensional Arrays via POST in PHP?

Soumission de tableaux multidimensionnels via POST avec PHP

Dans de nombreux scénarios, nous rencontrons des formulaires avec un nombre variable de lignes et de colonnes prédéfinies. Les utilisateurs peuvent librement ajouter des lignes selon leurs besoins. Comprendre comment capturer ces entrées dynamiques dans un format utilisable est crucial.

Envisagez un formulaire avec des colonnes pour les attributs du produit tels que le diamètre supérieur, le diamètre inférieur, le tissu, la couleur et la quantité. Bien que le nombre de colonnes reste constant, le nombre de lignes est dynamique.

Construction du formulaire

Pour s'adapter à un nombre dynamique de lignes, nous attribuons des noms uniques à chaque champ de chaque ligne à l'aide d'un indice du tableau. Par exemple :

<input name="topdiameter[0]" type="text">

Cela donne un code HTML qui ressemble à ceci :


  <input name="topdiameter[0]" type="text">

Récupération des données d'entrée

Lors de la soumission du formulaire, les données d'entrée sont accessibles via le superglobal $_POST. Il apparaît sous la forme d'un tableau de tableaux :

$_POST['topdiameter'] = array('first value', 'second value');
$_POST['bottomdiameter'] = array('first value', 'second value');

Utilisation d'un tableau multidimensionnel

Plutôt que d'utiliser plusieurs tableaux unidimensionnels, il est plus efficace d'utiliser un seul tableau bidimensionnel. Pour y parvenir, nous modifions le format du nom du formulaire :

name="diameters[0][top]"
name="diameters[0][bottom]"
name="diameters[1][top]"
name="diameters[1][bottom]"
...

Avec ce format révisé, nous pouvons désormais parcourir les valeurs facilement :

if (isset($_POST['diameters'])) {
    echo '<table>';
    foreach ($_POST['diameters'] as $diam) {
        // Here, $diam['top'] and $diam['bottom'] are accessible
        echo '<tr>';
        echo '  <td>', $diam['top'], '</td>';
        echo '  <td>', $diam['bottom'], '</td>';
        echo '</tr>';
    }
    echo '</table>';
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn