0

我有一个从 sql 选择生成数据的 foreach。当用户单击 div 时,会出现一条文本消息“points ganed”,并且表单内的数据将被提交。

整个脚本有效,但它总是在 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>

 }
4

2 回答 2

0

I found a solution like this,

before the foreach i decleare that

 $i = 1; 

then

<form class="<?php echo $i; ?>"> 

then at the end of form but before the foreach end tag

$i ++; 

so now i have

<form class="1">
<form class="2">
<form class="3">
<form class="4">

and so on, then i put a limit of display element from the sql select putting limit 10.

于 2013-09-24T00:58:35.403 回答
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; ?>
于 2013-09-24T00:07:03.417 回答