- 締切済み
checkboxでの複数選択削除がわかりません
今はひとつずつ削除しているのですが、checkboxにかえて複数削除するにはどのようにしたらいいでしょうか?具体的なフォームの形としては、タイトル(これは内容に飛ぶリンクがはられている)受信日、削除(ここの列にcheckboxをいれたい)これがヘッダーでテーブルの形になっています。 今のソースは以下のようになっています。 while ($line = mysql_fetch_array($rs_limit, MYSQL_ASSOC)) { echo "\t<tr>\n"; echo "<form action='message_s.php' method='POST' name='form1'>"; echo "<input type='hidden' name='no' value='$line[no]'>"; echo"\t\t <td NOWRAP><a href='message_s.php' onclick='document.forms[1].no.value=$line[no];document.forms[1].submit();return false;'>$line[title]</a></td>\n"; echo"</form>"; echo "\t\t <td NOWRAP>$line[zyusinbi]</td>\n"; //ここからが削除のフォームです echo "<form action='messagesakujyo_regist.php' method='POST' >"; echo "<input type='hidden' name='no' value='$line[no]'>"; echo"\t\t <td NOWRAP><a href='messagesakujyo_regist.php'onclick='document.forms[2].no.value=$line[no];document.forms[2].submit();return false;'>削</a></td>\n"; echo"</form>"; echo "\t</tr>\n"; } echo "</table>\n"; noをチェックボックスで複数の値を送りたいと思っています。自分でも配列(no[])にしたりしてやってみたのですがうまくいきません。同じ値だけしか取り出せなかったりします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tany180sx
- ベストアンサー率63% (239/379)
onclickの中がよく分かりませんが・・ echo '<form method="post" action="">'; echo '<table>'; foreach ($rows as $row) { echo '<tr>'; echo '<td><input type="checkbox" name="no[' . $row['no'] . ']" value="1"></td>'; echo '<td><a href="">' . $row['title'] . '</a></td>'; echo '<td>' . $row['zyusinbi'] . '</td>'; echo '</tr>'; } echo '</table>'; echo '<input type="submit" name="delete" value="Delete" />'; echo '</form>'; if (!empty($_POST['delete']) && !empty($_POST['no'])) { foreach ($_POST['no'] as $no => $val) { echo $no . '<br />'; // ←こいつを削除 } }
- wp_
- ベストアンサー率54% (132/242)
肝心のcheckboxを入れ忘れた。 (snip) echo "<form action='送信先' method='POST' id='f3'>"; foreach($rows as $row) { echo"<a onclick='document.getElementById('f1').no.value=" . $rows["no"] . ";document.getElementById('f1').submit();return false;'>削</a>"; echo "<input type='checkbox' name='no[]' value='" . $rows["no"] . "' />まとめて削"; } echo "<input type='submit' /></form>";
お礼
回答ありがとうございます。 まだエラーがでてるみたいなので、参考にしてがんばってみようと思います。 初心者の質問に答えてもらい本当にありがとうございます。
- wp_
- ベストアンサー率54% (132/242)
とりあえず突っ込みどころ満載と言っておきましょう。 >echo "<input type='hidden' name='no' value='$line[no]'>"; 変数は全て連結するか{}で括りましょう。 連結する方が高速なので当方は連結を使います。 echo "<input type='hidden' name='no' value='" . $line[no] . "'>"; echo "<input type='hidden' name='no' value='{$line[no]}'>"; submit()の部分でcheckboxに値を入れなおしている部分は不要でしょう。 ここでもjsの中にphpの構文が混ざっていてしっちゃかめっちゃかです。 >document.forms[1].no.value=$line[no]; ←コレ 何Mもあるデータをfetchするのであればスルーしていただきたいですが、 mysql_fetch_array()でループする中でhtmlをechoするのはあまり美しいやり方ではありません。 inputとoutputは極力分離して構築した方が見やすいロジックになります。 また、ループの中にformをそれぞれ書くのは少々無駄といえましょう。 aタグのhrefに値が入っているのも無意味です。 // そもそもhrefとonclickの優先順位ってブラウザ依存だったような気もします 当方が書くと以下の感じ。 $rows = array(); while($row = mysql_fetch_assoc()) { $rows[] = $row; } foreach($rows as $row) { echo"<a onclick='document.getElementById('f1').no.value=" . $rows["no"] . ";document.getElementById('f1').submit();return false;'>" .$line["title"]. "</a>"; echo"<a onclick='document.getElementById('f1').no.value=" . $rows["no"] . ";document.getElementById('f1').submit();return false;'>削</a>"; } echo "<form action='message_s.php' id='f1' method='POST'>"; echo "<input type='hidden' name='no' id='no' /> echo "</form>"; echo "<form action='messagesakujo_regist.php' id='f2' method='POST'>"; echo "<input type='hidden' name='no' id='no' /> echo "</form>";
お礼
回答ありがとうございます。 このコードをみて無事作ることができました。 わざわざ初心者の質問に答えていただきありがとうございます。