尝试创建一个不错的动态选择过程。选择过程分为两部分:选择类别,然后选择名称。表单过程工作得很好。然后,我想根据所选名称显示图像。我似乎无法弄明白,这是代码:
<form action="file.php" method="post">
<select id="first-choice" name="cardset">
<?php foreach ($data as $row): ?>
<option><?=$row["name"]?></option>
<?php endforeach ?>
</select>
<select id="second-choice" name="card">
<option>Please choose from above</option>
</select>
<img src="" name="image-swap">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script language=JavaScript >
$(document).ready(function() {
$("#first-choice").change(function() {
$.get("getter.php", { choice: $(this).val() }, function(data) {
$("#second-choice").html(data);
});
});
});
$(document).ready(function() {
$("#card").change(function() {
var first = $("first-choice");
var sec = $(this).val();
$("#image-swap").html(src ? "<img src='/pics/" + first + sec + "'>" : "");
});
});
</script>
我试图从pics /“first”/“sec”.jpg
中提取图像答案 0 :(得分:0)
两件事:
您只需要1个文件准备好的包装:
$(document).ready(function(){
$("#first-choice").change(function() {
$.get("getter.php", { choice: $(this).val() }, function(data) {
$("#second-choice").html(data);
});
});
$("#card").change(function() {
var first = $("first-choice");
var sec = $(this).val();
$("#image-swap").html(src ? "<img src='/pics/" + first + sec + "'>" : "");
});
});
第二个,非你的选项有值,这就是它没有通过的原因。
<select id="first-choice" name="cardset">
<?php foreach ($data as $row): ?>
<option value="<?=$row["name"]?>"><?=$row["name"]?></option>
<?php endforeach ?>
</select>
假设是否正确。我从来没用过=是php来回应,通常我会做<?php echo $row["name"]; ?>
。
答案 1 :(得分:0)
很难说没有看到HTML,但是。 。
var first = $("first-choice");
。 。 。最后错过了.val()
。如果你把它改成这个,它应该让你更接近你想要的东西:
var first = $("first-choice").val();
目前,您正在尝试将HTML选项的jQuery引用附加到字符串值(sec
)。
<强>更新强>
进一步了解并发现了一些其他问题。 。
1)您使用的是HTML img
元素,但是您已经为其赋予name
属性值“image-swap”:
<img src="" name="image-swap">
。 。 。并试图用jQuery“id”选择器引用它:
$("#image-swap")
要使该选择器生效,您必须将name
属性更改为id
属性,如下所示:
<img src="" id="image-swap">
2)您似乎正在尝试更新src
代码的img
属性,但您的代码中没有这么做:
$("#image-swap").html(src ? "<img src='/pics/" + first + sec + "'>" : "");
这里有几个问题:
src
不作为变量存在,但您似乎正在检查它是否存在src
的{{1}}属性,但您使用的是img
方法,该方法设置/获取标记的HTML内容,而不是其属性要执行您似乎想要执行的操作,您可能需要使用以下代码:
.html()
如果两个选项都没有空值,那么将使用图像位置更新$("#image-swap").attr("src", (first !== "" && + sec !== "") ? "pics/" + first + "/" + sec + ".jpg" : "");
属性,如果其中一个选项具有空值,则更新{“。
答案 2 :(得分:0)
我想出了$("first-choice").val()
并尝试了这个,
$(document).ready(function(){
$("#first-choice").change(function() {
$.get("getter.php", { choice: $(this).val() }, function(data) {
$("#second-choice").html(data);
});
});
$("#card").change(function() {
var first = $("first-choice").val();
var sec = $(this).val();
$("#image-swap").html(src ? "<img src='/pics/" + first + sec + "'>" : "");
});
});