Attribuer une valeur à un champ en fonction d'un autre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Attribuer une valeur à un champ en fonction d'un autre

Re: Attribuer une valeur à un champ en fonction d'un autre

par ceddevwp » 16 août 2024, 15:31

Le problème que tu rencontres vient du fait que dans ton code, tu utilises l'opérateur = pour tes conditions if.

Cet opérateur sert à assigner une valeur à une variable, alors que tu devrais utiliser == pour comparer des valeurs.

C’est pour ça que, dans ton cas, la condition est toujours considérée comme vraie, et c’est pourquoi la dernière valeur ($marker_trail) est toujours celle qui est retenue.

voici comment tu peux modifier ton code :
<?php
$categorie_parcours = get_field('categorie');
$marker_pedestre = 'leaflet-extramarker markerColor=yellow iconColor=white shape=circle icon=fa prefix=fa-landmark';
$marker_vtt = 'leaflet-extramarker markerColor=green iconColor=white shape=circle icon=fa prefix=fa-landmark';
$marker_cyclo = 'leaflet-extramarker markerColor=blue iconColor=white shape=circle icon=fa prefix=fa-landmark';
$marker_gravel = 'leaflet-extramarker markerColor=brown iconColor=white shape=circle icon=fa prefix=fa-landmark';
$marker_trail = 'leaflet-extramarker markerColor=YellowGreen iconColor=white shape=circle icon=fa prefix=fa-landmark';
$marker_multisport = 'leaflet-extramarker markerColor=red iconColor=white shape=circle icon=fa prefix=fa-landmark';

if ($categorie_parcours == 'Multi-sports') {
    update_field('marker', $marker_multisport);
} elseif ($categorie_parcours == 'Pédestre') {
    update_field('marker', $marker_pedestre);
} elseif ($categorie_parcours == 'VTT') {
    update_field('marker', $marker_vtt);
} elseif ($categorie_parcours == 'Cyclo') {
    update_field('marker', $marker_cyclo);
} elseif ($categorie_parcours == 'Gravel') {
    update_field('marker', $marker_gravel);
} elseif ($categorie_parcours == 'Trail') {
    update_field('marker', $marker_trail);
}
?>
\:D/

Re: Attribuer une valeur à un champ en fonction d'un autre

par or 1 » 12 août 2024, 19:53

== pour comparer

Attribuer une valeur à un champ en fonction d'un autre

par chaosad2 » 12 août 2024, 19:49

Bonjour,
Sur un site wordpress, je souhaite remplir un champ personnalisé en fonction de la valeur d'un autre.
J'ai des catégories de randonnées, et selon la catégorie (récupérée dans la variable $categorie_parcours), je veux modifier l'icone rattachée, en attribuant à la variable $marker le contenu des variables listées.

exemple : si $caegorie_parcours est égal à VTT, le champ marker prendra la valeur $marker_vtt.

J'ai tenté ce code :

Code : Tout sélectionner

<?php $categorie_parcours = get_field('categorie'); $marker_pedestre = 'leaflet-extramarker markerColor=yellow iconColor=white shape=circle icon=fa prefix=fa-landmark'; $marker_vtt = 'leaflet-extramarker markerColor=green iconColor=white shape=circle icon=fa prefix=fa-landmark'; $marker_cyclo = 'leaflet-extramarker markerColor=blue iconColor=white shape=circle icon=fa prefix=fa-landmark'; $marker_gravel = 'leaflet-extramarker markerColor=brown iconColor=white shape=circle icon=fa prefix=fa-landmark'; $marker_trail = 'leaflet-extramarker markerColor=YellowGreen iconColor=white shape=circle icon=fa prefix=fa-landmark'; $marker_multisport = 'leaflet-extramarker markerColor=red iconColor=white shape=circle icon=fa prefix=fa-landmark'; if ($categorie_parcours = 'Multi-sports') { update_field('marker',$marker_multisport);} if ($categorie_parcours = 'Pédestre') { update_field('marker',$marker_pedestre);} if ($categorie_parcours = 'VTT') { update_field('marker',$marker_vtt);} if ($categorie_parcours = 'Cyclo') { update_field('marker',$marker_cyclo);} if ($categorie_parcours = 'Gravel') { update_field('marker',$marker_gravel);} if ($categorie_parcours = 'Trail') { update_field('marker',$marker_trail);} ?>
Je n'ai pas d'erreur dans l'absolu, mais le champ prend systématiquement la dernière valeur (à savoir "trail" dans l'exemple).

Je suis débutant en php.
Où est mon erreur, ou où sont mes erreurs ? :)