Bonjour,
je veux mettre une condition dans ma boutique pour permettre d'afficher deux types différents de menu déroulant. Or tous les tests que j'ai fait ne change rien. Voici ce que j'ai fait :
1-
<?php if ($product_tags==" Pré-coupé") { ?>
test1 ?>
<?php } else { ?>
test2
<?php } ?>

et j'ai essayé cela

2-
<?php if (in_array(“pré-coupé”, $tags)) { ?>
test1
<?php } else { ?>
test2
<?php } ?>

Quel erreur je fais ?


Merci d'avance
Difficile à dire pour qui ne sait pas ce qu'il y a dans les variables $product_tags et $tags

On remarque cependant que le premier test cherche une chaîne de caractères commençant par un espace et un P majuscule, et le second test une chaîne commençant par un p minuscule. Ça peut venir de là.
Par ailleurs selon l'encodage de la variable et celle du fichier contenant le programme, il se peut que les caractères accentués ne soient pas traités de la même façon. et donc le test d'égalité ne fonctionne pas.
Merci,
j'ai corriger les petites lacunes, et malgré cela, je n'obtiens jamais la réponse test1. J'ai testé avec un tag d'un seul mot et sans accent et je n'ai pas plus de succès.

Quelles informations relatives à $product_tags et $tags seraient utiles à la bonne compréhension ? Les tags sont générés à partir de la page admin de ma boutique lors de la création des produits. Par exemple : Coton, Flanelles, Pré-coupé, Dear Stella, etc. Le site est bilingue j'ai donc l'équivalent en anglais.

J'ai aussi testé avec coton et cotton".

upload/58326-Capturedan.png

Toutes les solutions sont les bienvenues.

Merci d'avance
mirbrou a écrit :
Merci,
j'ai corriger les petites lacunes, et malgré cela, je n'obtiens jamais la réponse test1. J'ai testé avec un tag d'un seul mot et sans accent et je n'ai pas plus de succès.

Quelles informations relatives à $product_tags et $tags seraient utiles à la bonne compréhension ? Les tags sont générés à partir de la page admin de ma boutique lors de la création des produits. Par exemple : Coton, Flanelles, Pré-coupé, Dear Stella, etc. Le site est bilingue j'ai donc l'équivalent en anglais.

J'ai aussi testé avec coton et cotton".

upload/58326-Capturedan.png

Toutes les solutions sont les bienvenues.

Merci d'avance

Bonjour

Peux tu ajouter dans ton code php

echo "<pre>product_tags=|";print_R($product_tags);echo "|<pre>\n";
echo "<pre>tags=|";print_R($tags);echo "|<pre>\n";

Tu devrais voir apparaître le contenu des 2 variables sous la forme

    product_tags=|...|
    tags=|...|

On verra bien s'il y a ce que tu crois dans les variables en question ou non.
Merci beaucoup,

J'ai effectivement des items dans product_tags, mais inlassablement tous mes requêtes donnent le même résultat.

J'ai aussi remarqué que si j'enlève un signe égal, j'obtiens pour tous mes produits, test1. Par contre lorsqu'il y en a deux, j'obtiens pour tous mes produits, test2. Bizarre.

Je joins une capture d'écran de 2 produits qui devraient donner un résultat différent. upload/58326-Capturedan.png
Cette capture d'écran manifestement est celle du source de ton programme, ça ne nous apprend rien sur le comportement dudit programme et de la raison pour laquelle tu n'obtiens pas le résultat escompté.
Je t'ai recommandé de mettre une trace dans le programme pour regarder le contenu de tes variables au moment où tu les testes. C'est ce résultat là qui peut être intéressant, car il permettrait de savoir à quoi tu compares ton "pré-découpé" ou autre.

Si tu remplaces "==" par "=", tu obtiens une assignation et non pas une comparaison.
la forme

 if ($product_tags==" Pré-coupé") 

est une comparaison de chaînes de caractères.
la forme

 if ($product_tags=" Pré-coupé") 

signifie que tu testes si l'opération "mettre la valeur " Pré-coupé" dans la variable $product_tags s'est bien déroulée ou non.
Je ne comprends trop pourquoi la vignette de mon message précédent correspond à ce que 'ai mis en pièce jointe, pourtant lorsqu'on clique dessus c'est autre chose. Je vais donc copier-coller le résultat du test :
premier produit testé devrait retourner le résultat test2:

test1
product_tags=|Pré-coupé|
tags=|Array
(
[0] => Array
(
Smiley tag => Calico, coton, Dear Stella
Smiley href => http://migration.sur.17.votresite.ca/boutique/index.php?route=product/search&keyword=Calico, coton, Dear Stella
)
)
|
second produit testé :

test1
product_tags=|Pré-coupé|
tags=|Array
(
[0] => Array
(
Smiley tag => Doe
Smiley href => http://migration.sur.17.votresite.ca/boutique/index.php?route=product/search&keyword=Doe
)
[1] => Array
(
Smiley tag => Pré-coupé
Smiley href => http://migration.sur.17.votresite.ca/boutique/index.php?route=product/search&keyword=Pré-coupé
)
[2] => Array
(
Smiley tag => Robert Kaufman
Smiley href => http://migration.sur.17.votresite.ca/boutique/index.php?route=product/search&keyword=Robert Kaufman
)
[3] => Array
(
Smiley tag => un Quart
Smiley href => http://migration.sur.17.votresite.ca/boutique/index.php?route=product/search&keyword=un Quart
)

)
|

Je tente de retourner l'image
Merci encore pour votre aide.
upload/58326-Capturedan.png
La vignette correspond à l'Image envoyée, mais lorsqu'on l'ouvre c'est le premier fichier image que j'ai postée qui s'ouvre.
Modifié par mirbrou (07 Apr 2015 - 12:58)