从一个foreach生成的PHP Jquery表单

时间:2013-09-24 00:04:55

标签: php jquery sql ajax

我有一个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>

 }

2 个答案:

答案 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中设置了显示元素的限制。