web-dev-qa-db-fra.com

Type de message personnalisé, enregistrement de plusieurs cas à cocher

Pour un type de publication personnalisé, j'insère dans une liste un autre type de publication personnalisée que je dois sélectionner pour la sauvegarde ...

<input type="checkbox" name="32"> My CPT <br>
<input type="checkbox" name="41"> My CPT 2 <br>
<input type="checkbox" name="42"> My CPT 3 <br>
<input type="checkbox" name="43"> My CPT 4

Il est assez facile de sauvegarder une seule entrée, mais comment puis-je sauvegarder plusieurs cases à cocher?

update_post_meta( $post->ID, 'mycpt', $_POST['myinput'] );
1
dcolumbus

Pour ce faire, vous devrez les enregistrer sous forme de tableau. Actuellement, votre code HTML n’est pas au bon format.

<label for="my-cpt-32">
    <input type="checkbox" name="cpt_ids[]" value="32" id="my-cpt-32" />
    My CPT #32
</label>
<label for="my-cpt-41">
    <input type="checkbox" name="cpt_ids[]" value="41" id="my-cpt-41" />
    My CPT #41
</label>
<label for="my-cpt-43">
    <input type="checkbox" name="cpt_ids[]" value="42" id="my-cpt-43" />
    My CPT #43
</label>

Lorsque ceci sera $ _POST'ed, vous aurez un tableau de valeurs vérifiées, assurez-vous de vérifier qu'il est 'défini' par exemple. isset( $_POST['cpt_ids'] ).

Si vous avez coché 41 et 43, vous obtiendrez un tableau comme celui-ci:

array(
    [0] => 41,
    [1] => 43
)

que vous pouvez utiliser pour enregistrer dans votre champ personnalisé, une table secondaire, etc.

J'espère que ça aide!

2
Cristian

Le troisième paramètre de update_post_meta () peut être un tableau. Changer l'attribut name de la case à cocher quelque chose comme "myCPT []" et ajouter un attribut value:

<input type="checkbox" name="myCPT[]" value="32"> My CPT <br>
<input type="checkbox" name="myCPT[]" value="41"> My CPT 2 <br>
<input type="checkbox" name="myCPT[]" value="42"> My CPT 3 <br>
<input type="checkbox" name="myCPT[]" value="43"> My CPT 4

vous permettra d'obtenir toutes les valeurs sélectionnées sous forme de tableau.

Lorsque le formulaire est soumis, php créera un tableau des valeurs sélectionnées. Vous pouvez ensuite accéder au tableau à l’aide de $ _POST ['myCPT'].

1
nvwd