将JS/css信息传递到表单的最佳方式
Best way to pass JS/ css info to a form
我相信这很容易,我只是一个巨大的傻瓜。我在PHP页面上有一个表单,它有一些普通的表单元素(1个文本区域,1个文本字段)。
我还在页面上动态添加100个随机的小图像,我使用JQuery让某人选择或取消选择这些图像:
以下是循环100次以显示图像的html:
<div class='avatar'><img class='avatar_image' src='$this_profile_image' name='$thisfriend'></div>
这是Jquery:
<script type="text/javascript">
$(document).ready(function() {
$(".avatar_image").click(function() {
$(this).toggleClass("red");
});
});
</script>
我想做的是,当表单提交时,让处理它的脚本能够判断这100张图像中的哪一张被选中(所以它的类将是"红色"而不是"avatar_image")。我对此视而不见。
您需要为这些图像添加带有某种标识符的隐藏输入,并根据所选图像切换这些输入的状态。类似这样的东西:
Change your image markup:
<div class='avatar'>
<img class='avatar_image' src='$this_profile_image' name='$thisfriend'>
<input type="hidden" name="avatar_image[]" value="$this_profile_image" disabled="disabled" />
</div>
Change jQuery binding (and use event delegation, maybe pick a better container than document.body):
<script type="text/javascript">
$(function() {
var selClass = 'red';
$(document.body).on('click', ".avatar_image", function() {
var $this = $(this);
var $inp = $this.siblings('input[type="hidden"]');
var isSelected = $this.hasClass(selClass), willBeSelected = !isSelected;
$this.toggleClass(selClass);
if(willBeSelected) {
$inp.removeAttr('disabled');
} else {
$inp.attr('disabled', 'disabled');
}
});
});
</script>
Read the submitted data in PHP (assuming you're submitting via a POST form):
$selectedImages = $_POST['avatar_image'];
为每个图像添加一个ID,当它点击时获取ID,然后将其注入隐藏的文本字段
<input type="hidden" name="avatar" id="avatar" value="" />
$(".avatar_image").click(function() {
$(this).toggleClass("red");
//assign its id to the hidden field value
$("input[name='avatar']").attr('value', $(this).attr('id'));
// pass that to your DB
});
我推测您使用ajax将这些数据抓取回
success : function(callback){
$("image[id*='"+callback.avatar+"']").addClass('red');
}
试试这个
PHP:将朋友的id添加到您拥有的html中
<div class='avatar'>
<img class='avatar_image' src='$this_profile_image' name='$thisfriend' data-id='$thisFriendsId>
</div>
JS:创建一个空数组。使用每个函数将选定的id推送到您的数组中。然后使用post提交到您的php。
selected = [];
$(function(){
$(".avatar_image").click(function() {
$(this).toggleClass("red");
});
$('.submit').click(function(){
$('.red').each(function(){
var selectedId = $(this).data('id');
selected.push(selectedId);
});
$.post ('http://mysite.com/process.php', selected, function() { alert('succes!'); });
});
});
相关文章:
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- 提交表单后的最佳解决方案
- 临时存储用户表单数据的最佳方式,用于表单重新提交
- 在向导表单中使用按钮提交值的最佳方式
- 在rails中选择向表单添加文本字段的最佳方式
- 实现动态表单验证 Rails 的最佳方式
- 为输入字段(而不是表单的一部分)设置默认按钮(或在 javascript 中触发其事件)的最佳方法
- 如何进行最佳和安全的jQuery表单检查
- 使用离子移动应用程序与 Django 进行表单处理的最佳方式
- 当主图像未加载(.net web表单)时,加载备用图像的最佳方式是什么
- Django Javascript:提交表单的最佳方式
- 处理通过ajax提交的表单中的错误的最佳实践
- 从html表单中添加和删除元素的最佳方法
- 将JS/css信息传递到表单的最佳方式
- 使用动态生成的表单或html输入标记的最佳实践是什么
- 这是在单击按钮时将表格行更改为表单的最佳方式吗
- 当javascript被禁用时,保护表单的最佳方法是依赖javascript验证
- Javascript对象&数组通过表单(json/?? ?)到服务器-最佳实践
- 按需加载选项卡和表单提交的最佳方法
- 使用Jquery/Javascript在提交和重定向时验证表单的最佳实践