我希望有人可以帮助我。我是jquery的新手。我想在一个页面上显示我的学生的照片,这样我就可以轻松地在场。我使用带有php的MySQL数据库。这很容易。
接下来,我设法创建了一个jquery脚本,所以当我点击每个图像时,该图像的边框会循环显示绿色,红色和黄色(in-out-late css类)。
这是html代码(来自隐藏字段的ID是学生编号)
<div class="presences-container">
<ul>
<li class="presences-image in"><img src="7465.jpg">
<input type="hidden" id="7465" name="presence2" value="in"/></li>
<li class="presences-image out"><img src="9484.jpg">
<input type="hidden" id="9484" name="presence3" value="in"/></li>
<li class="presences-image late"><img src="2627.jpg">
<input type="hidden" id="2627" name="presence4" value="in"/></li>
</ul>
</div>
和jQuery
$(document).ready(function() {
$('li').toggle(
function() {
$(this).toggleClass('in out');
$(this).removeClass('in');
;},
function() {
$(this).toggleClass('out late');
$(this).removeClass('out');
},
function() {
$(this).toggleClass('late in');
$(this).removeClass('late');
}
);
});
现在,我想使用jquery根据图像的状态(ou或late)设置每个隐藏字段值,并提交所有隐藏字段以将其放入我的数据库中。
希望我足够清楚!
先谢谢你的帮助!!
弗朗索瓦
答案 0 :(得分:0)
这就是你想要的吗?
只需将类型更改为隐藏。
<强> HTML:强>
<div class="presences-container">
<ul id="ulPics">
<li class="presences-image in"><img src="7465.jpg">
<input type="text" id="7465" name="presence2"/></li>
<li class="presences-image out"><img src="9484.jpg">
<input type="text" id="9484" name="presence3"/></li>
<li class="presences-image late"><img src="2627.jpg">
<input type="text" id="2627" name="presence4"/></li>
</ul>
<强> JS:强>
$("#ulPics li input").each(function(){
$(this).val($(this).parents('li').attr("class").split(" ")[1]);
});
答案 1 :(得分:0)
您可以使用这样的代码在点击hidden
时更新相应的<li>
字段 -
var hiddenid = $(this).find('img').attr('src').replace(".jpg","");
$("#" + hiddenid).val($(this).attr('class').split(' ').splice(-1));
然后,您可以序列化隐藏的输入值,如下所示 -
vat hiddenvals = $("input[type=hidden]").serialize();
答案 2 :(得分:0)
根据我的理解,这样的事情可以解决问题:
var states = $(['late','out','in']);
$('li').click(function() {
var $this = $(this),
$hiddenField = $this.find('input:hidden'),
idx = $.inArray($hiddenField.val(), states);
// update hidden field
$hiddenField.val(states.get(--idx));
// update li
$this.removeClass('in out late').addClass($hiddenField.val());
});