Как отобразить изображение из списка изображений в зависимости от определенных условий (с помощью ColdFusion)

#html #coldfusion

Вопрос:

У меня есть список URL-адресов для изображений, и я хочу отображать определенное изображение каждый раз, когда html-страница загружается снова. У меня есть переменная url-адреса p, значение которой будет увеличиваться на единицу каждый раз при загрузке html-страницы.

Ниже приведен код, который у меня есть:

 <cfif p eq 1>
    <cfset w="image1.png">  

<cfelseif p eq 2>
    <cfset w="image2.png">  

<cfelseif p eq 3>
    <cfset w="image3.png">
</cfif>

<img class="class1" src=<cfoutput>#w#</cfoutput>>
 

Однако ColdFusion, похоже, не распознал cfoutput, когда он был в теге?

Комментарии:

1. проверьте инструменты разработчика, может быть, это просто отсутствующий/неправильный путь к изображению? может быть, недостающее «» для src?

Ответ №1:

Ваш код, кажется, в порядке. Я провел быстрый успешный тест следующего кода на trycf.com и это работает:

 <cfset P=RandRange( 1, 3)>
<cfif p eq 1>
        <cfset w="https://picsum.photos/200/400">  

 <cfelseif p eq 2>
        <cfset w="https://picsum.photos/300/300">  

 <cfelseif p eq 3>
        <cfset w="https://picsum.photos/400/100">
</cfif>

<img class="class1" src=<cfoutput>#w#</cfoutput>>
 

Так что ваша проблема, похоже, не в коде. Чтобы определить проблему, вам нужно просмотреть сгенерированный исходный код в инструментах разработчика, как упоминал @luke в своем комментарии. Посмотрите также на вкладке «Сетевые инструменты разработчика», правильно ли запрашиваются и загружаются изображения вашим браузером. Также вполне вероятно, что ваш браузер блокирует отображение изображений.

Тем не менее, я бы поставил значение атрибута изображений src в двойные кавычки и полностью включил тег изображения с тегами cfoutput (для лучшей читаемости кода), вот так:

 <cfoutput>
   <img class="class1" src="#w#">
</cfoutput>