首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >within循环中的HTML表单

within循环中的HTML表单
EN

Stack Overflow用户
提问于 2013-01-09 06:32:51
回答 2查看 699关注 0票数 0

我有一个页面,为请求访问网站的用户生成邀请密钥。

代码语言:javascript
复制
<section id="beta">
    <span class="title">Users Requesting an Invite</span>
    <div>
        <ul>
            <li>#</li>
            <li>Email</li>
            <li>Invite Code</li>
            <li></li>
        </ul>
        </br>
        <ul>
            <?
                $i = 1;
                while($request = mysql_fetch_array($reqlist)) {
            ?>
            <span>
            <li><?=$i?></li>
            <li><?=$request['email']?></li>
            <?php if(isset($request['invite_code']) && !empty($request['invite_code'])) {?>
                <li><?=$request['invite_code'];?></li>
            <?} elseif(empty($request['invite_code'])) {?>
                <li><?if($onum == $i){echo $invcode;}?></li>
                <li>
                    <form id="<?=$i?>" method="post">
                        <input type="submit" name="submit" value="Generate" />
                        <input type="hidden" name="num" value="<?=$i?>"/>
                    </form>
                </li>
                <?php if($onum == $i && isset($invcode) && !empty($invcode)) {?>
                <li>
                    <form method="post" name="save"> 
                        <input type="submit" name="save" value="Save" />
                        <input type="hidden" name="inv" value="<?=$invcode?>" />
                        <input type="hidden" name="req_id" value="<?=$request['id']?>" />
                    </form>
                </li>
                <? } ?>
            <? } ?> 
        </br>
        </span>
        <?
            $i++;
            //$invcode = '';
            }
        ?>
        </ul>
    </div>
</section>

因此,正如我的代码所述,流程如下所示。该表打印出所有请求invite的用户,最后有一个generate按钮。一旦单击generate,我就有一个函数来创建带有键的变量。一旦生成密钥,就会弹出一个带有保存表单的新<li>,以便将其保存在数据库中。

但问题是,当单击generate时,它只适用于第一条记录。我理解这是由于$invcode = '';使它成为NULL,但是我不知道如何以不同的方式来实现它,所以如果单击任何generate按钮,它将只对特定的人工作。

更新:更新了工作答案。好像我把问题说错了。一次只有第一行将生成代码。对每个单独行的保存完全正常。只是如果没有设置$invcode,每个generate按钮只能在第一行上工作。但我通过将行号添加到混合中来修正它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-09 06:51:13

感谢您的批评,我们将研究新的编码方式,因为有些项目是不推荐的。但还是想出了解决办法。

我将<input type="hidden" name="num" value="<?=$i?>"/>添加到generate表单中,并让它检查post号是否等于行号,如果它与它匹配的话。if($onum == $i){echo $invcode;}

票数 0
EN

Stack Overflow用户

发布于 2013-01-09 07:00:07

试着用-

代码语言:javascript
复制
<input type="submit" name="save[]" value="Save" />
<input type="hidden" name="inv[]" value="<?=$invcode?>" />
<input type="hidden" name="req_id[]" />

由于输入类型名称相同,所以您将获得第一行的值。您需要使用[]后缀名称来获取名称中的所有值。

您可能需要更改提交值的代码。在提交页print_r变量上查看。

例子-

代码语言:javascript
复制
print_r($_POST['inv']);

它将输出一个数组,我希望rest可以单独完成:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14229544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档