0

誰かが私を助けてくれるのではないかと思います。

まず、これは私がこれまでに取り組んだことがないことです。経験豊富な開発者にとって単純な問題である場合は、ご容赦ください。

以下のコードは、各ユーザーの「ロケーション リスト」を正しく表示するスクリプトの一部です。

            $i=0;
                    while ($i < $num) {
                        $lid=mysql_result($result,$i,"locationid");
                        $lname=mysql_result($result,$i,"locationname");
                        $laddress=mysql_result($result,$i,"returnedaddress");

                        include("admin/link.php");
                        include("admin/opendb.php");
                        $fquery = "SELECT COUNT(*) num FROM finds WHERE locationid = '$lid'";
                        $fcount = mysql_query($fquery) or die('error');
                        $row = mysql_fetch_assoc($fcount);
                        $findscount = $row['num'];
                        mysql_close($connect);  
                        ?>

                        <table width="603" border="0">
                      <tr>
                        <th width="156">Location</th>
                        <th width="302">Address</th>
                        <th width="131">No. Of Finds Made</th>
                      </tr>
                      <tr>
                        <td><?php echo $lname;?></td>
                        <td><?php echo $laddress;?></td>
                        <td><?php echo $findscount;?></td>
                      </tr>
                        </table>

                        <?php
                        echo'<form name="locations" method="post">';

                                    $i++;
                    }
                    if ($num == 0) {
                        echo"<tr>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                            </tr>
                            <tr>
                              <td>&nbsp;</td>
                              <td colspan='3'><div align='center'><strong>No locations have been added yet. <a href='saveaddress.php'>Click here</a> to add one.</strong></div></td>
                              <td>&nbsp;</td>
                            </tr>
                            <tr>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                              <td>&nbsp;</td>
                            </tr>";
                    }


                            echo '<input type="submit" name="submitlocation" id="submitlocation" value="View/Amend Location Details">';

                            echo '<input type="submit" name="submitfinds" id="submitaddfinds" value="Add Finds">';
                            echo '</div>'."\n";
                            if(isset($_POST["submitlocation"])) {
                                  header("updatelocation.php");

                              }
                              else if(isset($_POST["submitaddfinds"])) {
                                  header("addfinds.php");

                            }
                            ?>

私がやろうとしているのは、各 Location レコードに 2 つの送信ボタンを追加することです。1 つはユーザーを というページに移動させ、もう 1 つはupdatelocation.phpユーザーをaddfinds.php. ただし、両方とも「locationid」フィールドを介して場所にリンクする必要があります。言い換えれば、ユーザーがAdd Finds関連Location 1するボタンをクリックすると、Add Findsロケーション 1 のページに移動します。

私はいくつかのチュートリアルを読みましたが、レコードにボタンを追加することはできましたが、いずれかのボタンをクリックすると、ユーザーがそれぞれのページに移動します。

誰かがこれを見て、どこが間違っているのか教えてください。

多くの感謝と親切な敬意

4

1 に答える 1

0

ロジックを処理してユーザーを正しいページに送る別のページ(つまり、forrmaction.php)を作成することをお勧めします。それを望まない場合は、ボタンごとに個別のフォームを作成し、のaction属性をformupdatelocation.phpまたはaddfinds.phpのいずれかを指すように設定することもできます。

formaction.phpの例:

if (isset($_POST['type']) {
    if ($_POST['type'] == 'update')
        $url = 'updatelocation.php';
    else
        $url = 'addthis.php';

    header("Location: " . $url);
}

formaction.phpで機能する2つのボタンを持つフォームの例:

<form name="locations" method="POST" action="formaction.php">
     <input type="submit" name="type" value="update">
     <input type="submit" name="type" value="add">
</form>

ただし、あなたの質問では、問題は正しいヘッダーを使用していないことです。リダイレクトを使用するには、ヘッダーで「Location:」を使用する必要があります。例えば、

header("Location: updatelocation.php");

ヘッダーがすでに送信されている場合、これは機能しないため、注意してください。その場合は、出力制御を調べることをお勧めします。

于 2012-06-13T15:01:57.043 に答える