我有一个foreach从sql select生成数据。当用户点击div时,会出现一条文本消息“点亮”,表单中的数据将被提交。
整个脚本有效,但它始终提交4个生成的最后一个表单...他没有针对正确的表单。
有一种方法可以锚定正确的表单提交吗?提前感谢所有人。
<script>
function(response) {
$('#mydiv').text('Points gained');
$("#form").submit()
}</script>
foreach ($usermeta as $post) {
<form method="post" id="form" action="<?php the_permalink(); ?>">
<div id="mydiv">
click here to earn points.
</div>
<input type="hidden" name="points" id="points" value="<?php echo $post->points; ?>" class="regular-text" />
</form>
}
答案 0 :(得分:0)
每个表单都有相同的ID。您需要确保表单的ID是唯一的。
我没有足够的代表发表评论,但这是你可以做的。
<script>
$(document).ready(function() {
$('.mydiv').click(function() {
$(this).text('Points gained').closest('.form').submit();
});
});
</script>
<?php foreach ($usermeta as $post): ?>
<form method="post" class="form" action="<?php the_permalink(); ?>">
<div class="mydiv">
click here to earn points.
</div>
<input type="hidden" name="points" class="points" value="<?php echo $post->points; ?>" class="regular-text" />
</form>
<?php endforeach; ?>
答案 1 :(得分:0)
我找到了这样的解决方案,
在foreach之前我发现了 $i = 1;
然后
<form class="<?php echo $i; ?>">
然后在形式结束但在foreach结束标记之前
$i ++;
所以现在我有了
<form class="1">
<form class="2">
<form class="3">
<form class="4">
依此类推,然后我从sql select puts limit 10中设置了显示元素的限制。