[PHP-users 35181] Re: FORMでの値渡しについて(最後の値が入ってしまう)

ryokatsube katsube @ address.bz
2010年 4月 30日 (金) 02:20:21 JST


konaさん

はじめまして、リュウといいます。
一覧で、そのままボタンでPOST処理をしても、
対象行のデータが受け渡されません。
一覧の「削除」ボタンをクリックしたときに
全体にPOSTされる為、現象どおり同じ名前のコントロールで
一番下部のものを拾ってPOSTされる形になります。

もし、特定の行の情報を拾いたいのであれば
JAVASCRIPTで処理をする形になります。

>    <td><input type="submit" name="del" value="削除"></td>
>  <input type="hidden" name="no" value="<?php echo $row['no'] ?>">

上記の部分を下記の組み合わせで実装します。

<td><input type="submit" name="del" value="削除" onclick="delRow(this.form,'<?php 
echo $row['no'] ?>')"></td>

hiddenは、一覧の行ごとには、必要ありませんので、</form>の上辺りに記載してください。

<input type="hidden" name="no" >


delRowの中身は下記のような感じ

function delRow(form,no){
   form.no.value=no;
   form.submit();
}



----- Original Message ----- 
From: "kona" <uto-s @ ymail.plala.or.jp>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Friday, April 30, 2010 1:15 AM
Subject: [PHP-users 35179]FORMでの値渡しについて(最後の値が入ってしまう)


> こんばんは。konaと申します。
>
> データベースの内容をwhile文を使って一覧表示させ、
> 各行(レコード)の右端に「削除」ボタンを設け、
> レコードを削除させたいのですが、
> 目的のレコードの「削除」ボタンをクリックしても、
> 表の最後(一番下)のレコードしか削除されず悩んでいます。
> 下記の例で、POSTで渡す値に、一番最後の値が入ってしまいます。
>
> <?php
> $rs = $db->query("SELECT * FROM table WHERE id = '$id'");
> $row = $rs->fetchRow(DB_FETCHMODE_ASSOC);
> ?>
> <table>
> <?php
> while ($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){
> ?>
>  <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">
>  <tr>
>    <td><?php echo $row['no'] ?></td>
>    <td><?php echo $row['name'])?></td>
>    <td><input type="submit" name="del" value="削除"></td>
>  </tr>
>  <input type="hidden" name="no" value="<?php echo $row['no'] ?>">
>  </from>
> <?php
> }
> </table>
>
> 上記の場合、$_POST['no'] で受け取る値が、目的のレコードのnoでなく
> 一番最後の値になってしまいます。
> 但し、表にある $row['no']  の値は目的のレコードのnoを表示しています。
>
> 原因や何か良い解決方法がございましたら
> どなたかアドバイス頂けますと助かります。
>
> よろしくお願い致します。
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3 



PHP-users メーリングリストの案内