0

Web サイトへのアクセスを要求するユーザーの招待キーを生成するページがあります。

<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="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 に答える
0

批判をありがとう、いくつかの項目が廃止されているので、コーディングの新しい方法を検討します. しかし、とにかくそれを修正する方法を考え出しました。

生成フォームに追加<input type="hidden" name="num" value="<?=$i?>"/>し、投稿番号が行番号と等しいかどうか、一致するかどうかを確認します。if($onum == $i){echo $invcode;}

于 2013-01-09T06:51:13.243 に答える