5568 sujets

Sémantique web et HTML

Bonjour!

Je ne suis pas très confortable à travailler le PHP et je dois trouver le moyen d'intégrer un symbole de dollar ($) dans une newsletter de facturation (trigger email).

Normalement tout fonctionne bien avec ce code :
$<span> @Model.ShippingTotal.ToString("N2")</span>


Mais lorsque je dois l'adapter à ceci :

@foreach( var taxItem in Model.Taxes) {
		if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) > -1) {
		<span><br>@taxItem.Amount.ToString("N2")</span>
}
}


@foreach( var taxItem in Model.Taxes) {
		if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) == -1) {
		<span><br>@taxItem.Amount.ToString("N2")</span>
}
}


... J'ai beau essayer par toute les façons, cela me donne des messages d'erreurs.

Est-ce que quelqu'un serait en mesure de m'aider?
Modifié par Maggie83 (04 Jan 2016 - 23:47)
J'ai essayé entre autre de cette façon, ce qui me semblait très logique... Mais bon, le résultat me donnait ceci... (Le symbole devrait se retrouver devant le 36.88 et le 73,58)

upload/60015-alsa.jpg

$<span> @foreach( var taxItem in Model.Taxes) {
if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) > -1) {
<span><br>
@taxItem.Amount.ToString("N2")</span>
}}</span>

$<span> @foreach( var taxItem in Model.Taxes) {
if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) == -1) {
<span><br>@taxItem.Amount.ToString("N2")</span>
}}</span>


Smiley eek
Bonjour,

En premier lieu, vu la tête de ton code, je n'ai pas l'impression que ce soit vraiment du PHP; ça ressemble plutôt à un langage de template. Donc avant tout soyons précis.

Maintenant, indépendament du langage, une solution qui marche la plupart du temps est l'échappement. Où tu veux voir apparaître $ tu écris \$.
Bonjour QuentinC,

Je viens d'essayer votre suggestion comme ceci :

\$@foreach( var taxItem in Model.Taxes) {
		if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) > -1) {
		<span><br>@taxItem.Amount.ToString("N2")</span>
}
}

@foreach( var taxItem in Model.Taxes) {
		if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) == -1) {
		<span><br>@taxItem.Amount.ToString("N2")</span>
}
}


et cela me donne cela :

upload/60015-ScreenShot.png

Je ne suis pas pro en code, mais il me semble que je ne peux disposer de ce symbole $(ou\$) uniquement à cet endroit - c'est à dire devant @foreach.. (autrement j'ai des notes d'erreurs du genre : *The following errors occurred: Unexpected character '$' Unexpected character '$'*

Qu'en pensez-vous?

Merci
Au pire utilise la version entité du caractère. C'est moche, mais ça a des chances de marcher.
Pour $ c'est & # 39; sans les espaces (les espaces sont là pour éviter des bugs d'interprétation du forum).

Je suis sûr qu'il y a une meilleure solution mais comme tu n'as pas répondu à ma première question, je ne peux pas t'aider plus.


Ma première question, primordiale pour pouvoir t'aider mieux, et la suivante: c'est quel langage ? parce que c'est vraiment pas du PHP.
Salut,

J'appuie la question de Quentin sur "C'est quoi ça?" Smiley smile

Par contre, j'en ajoute une autre, quelle est le besoin de mettre l'unité monétaire $ à la fin de la chaîne ?

Car le texte que tu donnes, semble être en anglais/américain, donc c'est normal que l'unité monétaire soit en début de chaîne.

Tu serais en français, là je comprendrais mieux que tu souhaite le placer à la fin.

Mais comme il semble que tu utilises un CMS, cela doit être réglages dans les options du CMS directement, sans besoin de modifier le code en dur (qui empêcherait ainsi la futur maintenance).

Edit: je viens de comprendre que ce n'est pas la position sur laquelle tu demandes de l'aide, mais sur l'insertion de l'unité, au temps pour moi.

On dirait que le langage utilisé est de l'ASP.net ? (trouvé partiellement grâce à ceci)

Est-ce que ceci fonctionnerait correctement:

@foreach( var taxItem in Model.Taxes) {
		if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) == -1) {
		$<span><br>@taxItem.Amount.ToString("N2")</span>
}
}


Ou ceci en concaténation:


@foreach( var taxItem in Model.Taxes)
	{
	if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) == -1)
		{
		"$<span><br>"&@taxItem.Amount.ToString("N2")&"</span>"
		}
	}


Pour débugger ton code, tu peux aussi placer tes $ partout, mais ainsi: D1, D2, D3, D4 ... etc ... pour avoir des marqueurs, et savoir qui affiche quoi et où, ainsi tu devrais pouvoir t'en sortir tout seul Smiley cligne
Modifié par Super_baloo8 (06 Jan 2016 - 12:04)
Bonjour!

Pour le code, je viens de trouver : c'est du html avec des éléments "Razor syntax".. Je ne sais pas si cela vous évoque quelque chose..

Pour le code &#36; cela fonctionne dans le sens que le symbole s'affiche, mais simplement comme lorsque j'inscrit le symbole $.

Super_baloo8 : J'ai tenté vos exemples et j'ai reçu le message d'erreur suivant pour le premier test :
"The following errors occurred: Unexpected character '$'" et pour le second : "The following errors occurred: ; expected"

J'avais auparavant tenté votre truc de mettre des symboles partout et rien ne fonctionnait. J'ai finalement l'impression que c'est simplement impossible..

Qu'en pensez-vous?
Smiley sweatdrop
a écrit :
Pour le code, je viens de trouver : c'est du html avec des éléments "Razor syntax".. Je ne sais pas si cela vous évoque quelque chose..


Moi en tout cas ça ne m'évoque rien, désolé.

Mais il y a bien une des choses suivantes qui doit fonctionner, sinon c'est un système pourri: (ne pas oublier d'enlever les espaces que j'ai mis par précaution)
\ $
\ x27
\ u0027
\ 047


A moins que le symbole d'échappement ne soit pas \, dans le doute essaie aussi les symboles % ` $ ~ # & (par ordre de probabilité de succès décroissante)

Je ne connais pas ce langage donc je ne peux pas donner de réponse plus spécifique.
Pour les bons samaritains qui m'ont aidés, voici la solution à mon problème.

Merci! Smiley biggrin



<span>@foreach( var taxItem in Model.Taxes) {
if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) > -1) {
<span><br><span>$ </span>@taxItem.Amount.ToString("N2")</span>
}
}


<span>@foreach( var taxItem in Model.Taxes) {
if(taxItem.Name.IndexOf("CA", StringComparison.InvariantCultureIgnoreCase) == -1) {
<span><br><span>$ </span>@taxItem.Amount.ToString("N2")</span>
}
}
Modifié par Maggie83 (07 Jan 2016 - 21:45)