我有一个表格,用户可以在其中自定义他们从我们的网站购买的标签。javascript 的目的是当用户从下拉列表中选择该标签时,将图片更改为我们数据库中原始标签的图片。
当用户购买 10 个标签时,当页面加载时,我将代码复制 10 次。问题是唯一有效的是第一个。效果很好!第二个(虽然复制和粘贴的代码)根本无法正常工作。如果我将 getElementById 重命名为标记 1。第二个框非常适合第一个框。但不正确。
这是一些代码。
生成选择选项的 php 函数。
function createSelectDT(){
$qry = "SELECT `products_model`, `products_image` FROM `zen_products` WHERE `products_id` > '0'";
$result = mysql_query($qry)or die(mysql_error());
//we actually need the last two digits to find what department its in.
while ($row = mysql_fetch_assoc($result)){
$model = $row['products_model'];
$image = $row['products_image'];
//how many characters does the string have?
$length = strlen($model);
//subtract two so we can start there
$length = $length - 2 ;
//get the last to digits!
$last2 = substr($model, $length, 2);
//we have the last two lets make sure that they equal dog tags and echo it as a select option
if ($last2 == "01"){
echo "<option value=\"images/" . $image . "\">" . $model . "</option>";
}
}
}
html 和 javascript
<td><img id="tag1" src="images/1.png" /></td><td><select onchange="document.getElementById('tag1').src = this.options[this.selectedIndex].value;" name="tag1"><?php createSelectDT(); ?></select><br />New Header:<input type="text" name="tag1head" /><br />New background:<input type="text" name="tag1bg" /><br />New Footer:<input type="text" name="tag1foot" /><br />Upload image:</td>
<td><img id "tagtwo" src="images/1.png" /></td> <td><select onchange="document.getElementById('tagtwo').src = this.options[this.selectedIndex].value;" name="tag2"><?php createSelectDT(); ?></select><br />New Header:<input type="text" name="tag1head" /><br />New background:<input type="text" name="tag1bg" /><br />New Footer:<input type="text" name="tag1foot" /><br />Upload image:</td>
有趣的是,如果我将 javscript getElementById 设置为 tag1,tag2 将起作用。但不适用于 tag2。这是怎么回事?