0

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

<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>

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

但问题是,当单击生成时,它仅适用于第一条记录。我知道这是由于$invcode = '';制作它,NULL但我不确定如何以不同的方式进行操作,这样如果单击任何生成按钮,它只会对特定的人有效。

更新:更新了工作答案。也好像我用错了这个问题。一次只有第一行会生成一个代码。每一行的节省都完全正常。只是如果 $invcode 未设置,每个生成按钮将仅在第一行起作用。但我通过将行号添加到组合中来修复它。

4

2 回答 2

0

感谢您的批评,由于某些项目已弃用,因此将研究新的编码方式。但无论如何都想出了如何解决它。

我添加<input type="hidden" name="num" value="<?=$i?>"/>到生成表单并让它检查帖子编号是否等于行号,如果它匹配它回显。if($onum == $i){echo $invcode;}

于 2013-01-09T06:51:13.243 回答
0

尝试使用 -

<input type="submit" name="save[]" value="Save" />
<input type="hidden" name="inv[]" value="<?=$invcode?>" />
<input type="hidden" name="req_id[]" />

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

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

例子 -

print_r($_POST['inv']);

它会输出一个数组,我希望剩下的事情你可以单独做:)

于 2013-01-09T07:00:07.293 回答