我在屏幕上打印了16个图标(小图片)。
现在我希望能够选择图标, 当我按下按钮时,所选的图标ID将以表格形式发送。
我在网上只看到了复选框并列出了多选, 什么是最好的方法呢?
(我对网页设计很陌生)
非常感谢!
答案 0 :(得分:1)
这可能只是使用简单的Javascript或jQuery。我更喜欢jQuery版本,因为它将click处理程序与标记分开,而不是使用内联onclick
处理程序,这通常是不鼓励的。
这样做是使用input
元素数组,您可以通过将[]
添加到元素名称来创建。可以在SELECT
和其他元素上使用相同的技术,因为它向服务器发出已提交数组的信号,而不是单个键已知的值。
<html>
<head>
<style type="text/css">
div img {
cursor: pointer;
border: 1px solid #f00;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>
function setFormImage(id) {
if (id != '' && !document.getElementById('input_'+id)) {
var img = document.createElement('input');
img.type = 'text';
img.id = 'input_'+id;
img.name = 'images[]';
img.value = id;
document.imageSubmit.appendChild(img);
}
}
$(document).ready(function(){
$('#jqueryimages img').click(function(){
setFormImage(this.id);
});
});
</script>
</head>
<body>
<pre><?php
if (count($_GET['images'])) {
print_r($_GET['images']);
}
?></pre>
<div style="float: left; width: 49%;">
<h1>Plain ol' HTML</h1>
1. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-1" onclick="setFormImage(this.id)"/>
<br/>
2. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-2" onclick="setFormImage(this.id)"/>
<br/>
3. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-3" onclick="setFormImage(this.id)"/>
<br/>
4. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-4" onclick="setFormImage(this.id)"/>
</div>
<div id="jqueryimages" style="float: left; width: 49%;">
<h1>jQuery</h1>
5. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-5"/>
<br/>
6. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-6"/>
<br/>
7. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-7"/>
<br/>
8. <img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" id="img-8"/>
</div>
<h1>Form Submit</h1>
<form name="imageSubmit" method="get">
<input type="submit" value="View Selected"/>
</form>
</body>
</html>
答案 1 :(得分:1)
虽然jQuery不在您的代码中,但您应该introduce yourself to jQuery。对于你想要做的事情,它会让你的生活更轻松。如果您使用jQuery并且仅使用Javascript:
,这是基本步骤使用jQuery
<img src='icon1.png' data-iconID=2233 class='myIcons' />
)。
$('.myIcons').bind('click', function() {
$(this).toggleClass('selectIcon');
});
onsubmit
: <form ... onsubmit="submitForm();">
构建submitForm
函数:
function submitForm() {
var csvIconIds = '';
$.each($('.myIcons.selectIcon'), function (index, value) {
csvIconIds += $(value).attr('data-iconID');
});
//submit scvIconIds here along with other form data (ajax?)
}
使用Javascript
与上述类似但方式更复杂......
答案 2 :(得分:0)
试试这个
var idArray = [];
$("#container-id img").each(function(index,value){
idArray.push($(value).attr("id"));
});
//do anything with the array