1

もう一度編集:新改訂版

そのため、テーブルにタグがないことを修正し、フォームにIDを追加し、フォームIDと同じ値を持つ非表示フィールドを各フォームに追加しました(提案どおり)

issetがフォームIDを含むように設定されている場合、元のファイルを変更しようとしていましたが、それが少し行き詰まりました。

前述のように、ページが作成するHTMLは次のとおりです。

        <br><table border=1><tr><th>customer</th><th>product</th><th>employee</th><th>return_date</th><th>complete</th></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>        <FORM id="1" method ="post" action ="g.php">
        <input type='hidden' name='x' value='1'>
        <Input type = 'Radio' Name ='ir' value= '47'> 47        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>      <FORM id="2" method ="post" action ="g.php">
        <input type='hidden' name='x' value='2'>
        <Input type = 'Radio' Name ='ir' value= '48'> 48        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>02-10-12</td><td>      <FORM id="3" method ="post" action ="g.php">
        <input type='hidden' name='x' value='3'>
        <Input type = 'Radio' Name ='ir' value= '49'> 49        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>29-09-12</td><td>      <FORM id="4" method ="post" action ="g.php">
        <input type='hidden' name='x' value='4'>
        <Input type = 'Radio' Name ='ir' value= '50'> 50        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>      <FORM id="5" method ="post" action ="g.php">
        <input type='hidden' name='x' value='5'>
        <Input type = 'Radio' Name ='ir' value= '51'> 51        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>01-10-12</td><td>      <FORM id="6" method ="post" action ="g.php">
        <input type='hidden' name='x' value='6'>
        <Input type = 'Radio' Name ='ir' value= '52'> 52        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>02-10-12</td><td>      <FORM id="7" method ="post" action ="g.php">
        <input type='hidden' name='x' value='7'>
        <Input type = 'Radio' Name ='ir' value= '60'> 60        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br><tr><td>marne1</td><td>basketball</td><td>user</td><td>02-10-12</td><td>      <FORM id="8" method ="post" action ="g.php">
        <input type='hidden' name='x' value='8'>
        <Input type = 'Radio' Name ='ir' value= '61'> 61        <input type="submit" name="return"/>
        </FORM>
        </td></tr><br></table> 

    <fieldset>
<legend>???</legend>
<form action="z.php" method="post">
Customer Name: <input type="text" name="ir" /> <br><br>
<input type="submit" name="return"/>
</form>

これは、このHTMLを作成しているPHPページです(私の試みたフォームIDテストで):

    <?php
$db_host = "localhost"; 
$db_username = "root";  
$db_pass = "usbw";  
$db_name = "test"; 
mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql");
mysql_select_db("$db_name") or die ("no database"); 
$result = mysql_query("SELECT * FROM rental WHERE customer = '$_POST[customer]' AND complete = '0' ") or die (mysql_error());
?> 

    <?php
    echo '<br>';
    echo '<table border=1>';
    echo '<tr><th>customer</th><th>product</th><th>employee</th><th>return_date</th><th>complete</th></tr>';
    echo "<br>";
    $x=1;
    while($row=mysql_fetch_array($result))
    {   
        echo '<tr>';
        echo '<td>';
        echo $row ['customer'];
        echo '</td><td>' ;
        echo $row ['product'];
        echo '</td><td>';
        echo $row ['employee'];
        echo '</td><td>';
        echo $row ['return_date'];
        echo '</td><td>';
        $cur_return = $row ['rental_id'];
        ?>
        <FORM id="<?php echo $x; ?>" method ="post" action ="g.php">
        <input type='hidden' name='x' value='<?php echo $x; ?>'>
        <Input type = 'Radio' Name ='ir' value= '<?php echo $cur_return ?>'> <?php echo $cur_return ?>
        <input type="submit" name="return"/>
        </FORM>
        <?php
    echo '</td></tr>'; 
    echo '<br>';
    $x++;
    }
    echo '</table>';
    ?> 

    <fieldset>
<legend>???</legend>
<form action="z.php" method="post">
Customer Name: <input type="text" name="ir" /> <br><br>
<input type="submit" name="return"/>
</form>

    <?php
    if (isset($_POST['return']))
    {
    if ($_POST['x']==1)
        {
        mysql_query("UPDATE rental SET complete = '1' WHERE rental_id = '$_POST[ir]'") or die (mysql_error());
        }   
    }
    ?>  

私はあなたたちが提案しているすべての助けに本当に感謝しています、そしてこれを分類するのに時間がかかったことをお詫びします:)

リッチ

4

2 に答える 2

2

待って待って。ここに複数のデータ行があり、1つの特定のデータ行を送信したいのですが、すべて同じフォームにありますか?私は少し混乱しています。ここで本当に探しているのは、行ごとに異なるフォーム要素を生成することのようです。ただし、複数の送信ボタンで同じフォームの異なる部分を送信することはできません。これは、フォームの動作方法ではありません。送信ボタンは、フォームに属するすべてのデータを送信します。

その場合は、開始フォームタグをwhileループの内側の最初に移動し、送信ボタンと終了フォームタグをwhileループの下部に移動します。各フォームを生成し、テーブルの構造を維持します。ただし、基本的なHTMLの原則に反する、それ自体の特定の部分のみを送信する1つのフォームを持つことはできません。

将来の参照と更新のために、各フォームでIDを叩くことを強くお勧めします。

幸運を。

于 2012-09-28T18:41:00.923 に答える
1

これはjavascriptで実行できますが、phpでは実行できません。しかし、それは理由もなく複雑すぎます。さまざまなフォームを作成し、それらをさまざまなIDに割り当てます。同じmethod="post"と同じaction="g.php"を使用できます。g.phpで異なるようにするには、これを各フォームに入力します。

<input type='hidden' name='x' value='1'>

その後

<input type='hidden' name='x' value='2'>

次に、$ _ POST ['x']==1の場合は簡単です

また、g.phpを保護するようにしてください。これは、フォームを処理するファイルのかなり安全でない名前です。

于 2012-09-28T19:05:25.293 に答える