【问题标题】:Updating the src of an image through select-option通过选择选项更新图像的 src
【发布时间】:2017-04-08 23:32:06
【问题描述】:

如何通过选择选项更改图像的 src? img-src 是一个 php 变量,一旦选择了某些东西,我希望它从另一个 div 更改选择选项

下拉菜单

<select>
<option value="<?php echo $aColorName; ?>">Color Name</option>
<option value="<?php echo $anotherColorName; ?>">Color Name</option>
</select>

<img src="<?php echo $colorUrl.$aColorName ?>" />

我希望每次从选项中选择新颜色时更新图像源

【问题讨论】:

  • 添加 src 作为选项值并放入 onchange = function(){document.querySelector('img').src = this.value}
  • @Lain 介意详细说明?我有点新,谢谢
  • 为什么当人们做出应该是 cmets 的答案时,我们总是抱怨,但我们从不说应该是答案的 cmets?
  • @PhiterFernandes 因为总有一个聪明人最终会将评论变成“他自己的”答案。
  • @RST 希望我不是那个人!大声笑。

标签: javascript php jquery html


【解决方案1】:

由于您已经添加了 jQuery,我将向您展示一个使用事件处理程序的不显眼的代码示例。

$(function () {
  $("select").change(function () {
    $("img").attr("src", "//placehold.it/250/" + this.value + "?text=" + $(this).find("option:selected").text());
  });
});
img {display: block; margin: 15px 0;}
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<select>
  <option value=""></option>
  <option value="0f0">Yellow</option>
  <option value="00f">Blue</option>
</select>

<img src="//placehold.it/250?text=Select Colour" alt="" />

您也可以使用 Pure JS 执行相同的操作,方法是向 &lt;select&gt;onchange 事件添加事件侦听器。

在这里,我编写了一些自定义复杂代码来设置src 属性。简单来说,您可以使用以下方法将所选选项的value设置为图像的来源:

$("img").attr("src", this.value);

【讨论】:

  • 代替占位符。我可以将其更改为 PHP 变量吗?
  • 我也试过了,它工作了,但我遇到了一个问题,我有多个引导模式,每个模式都会为你的代码提供一个 src 并显示它,但问题是当我关闭一个模态并打开另一个,我找到以前的图像..它没有重置
  • @atp 看来您的问题已解决。但我想说的是制作类似演示的东西。以便我们检查。如果您有任何其他问题,请告诉我。
  • 我希望你能看到网站本身。我可以在哪里给你发链接?
【解决方案2】:

还有一个香草版本...

var selectBox = document.getElementById('selectBox');
    var theImg = document.getElementById('theImg');
    
    selectBox.addEventListener('change', function() {
        theImg.src = '/images/' + this.options[this.selectedIndex].value + '.jpg';
    }, false);
<select id="selectBox">
    <option value="blue">Blue</option>
    <option value="red">Red</option>
</select>

<img id="theImg" src="/images/<?php echo $colorUrl.$aColorName ?>.jpg" />

<!--
The 'src' attribute in image below needs to point to the default image to fix your problem. So for example if your images path is: '/images/' and in your foreach loop the value of $colorUrl.$aColorName is: 'Yellow' then the above code will output thew following when the page initially loads:

<img id="theImg" src="/images/Yellow.jpg" />
-->

【讨论】:

  • 正是我要找的,谢谢.. 顺便说一句,缺少页面加载后的默认和选定选项,它不会更新它
  • 没问题 - 你的意思是,当页面第一次加载时,图像被破坏了?如果是,那么有很多方法可以解决这个问题,但只需设置图像 src 的初始值 -
  • 我试过这样做,它不会改变初始值
  • @atp 只是想知道,你看到我的回答了吗?正如我在此人之前回答的那样,您选择此是否有特定原因?
  • 真是一团糟,哈哈,基本上我运行一个 foreach php 循环来查找所有可用的颜色并将它们作为选项“回显”出来,除了所选选项没有加载但是当我选择一个选项并选择它回来它可以工作..只是它没有加载..将默认图像添加到 src 只会将它放在那里并且代码不会删除它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多