• 締切済み

質問:PHP&mysqlで、選択したcheckboxを次画面で表示させたい

(1)DB内を検索 (2)DBアクセスし、検索結果を画面(1)で表示。(ループです)その際、checkboxを左につける。 (3)チェックされたレコードを画面(2)で再表示。 (2)の画面でレコード取得&checkbox <table class="TEBLE" border="1" width="100%"> <tr><th align="left"> </th> <th align="left">upload日</th> <th align="left">ファイル種別</th> <th align="left">ファイル名</th> <th align="left">作成日時</th> <th align="left">サイズ</th> </tr> <? while($rows = mysql_fetch_assoc($result)): ?> <tr> <td><input type="checkbox" name="ck_del[]"VALUE="<?= $rows ?>"></td> <td><?= $rows[upload_YMD] ?></td> <td><?= $rows[upload_FILE_TYPE] ?></td> ・・・・・・・・ <? endwhile; ?> これで検索結果は表示できました。でもvalueの値が間違っているようなきがしますが...全部の値をcheckboxでもって行こうという考えが無理ですか??? 受け取る画面 <?php $ck_del = $_POST["ck_del"]; foreach($ck_del as $rows){ ?> <tr><td><?= $rows[upload_YMD] ?></td> <td><?= $rows[upload_FILE_TYPE] ?></td> ・・・ </tr> <? }; ?> こんな感じで書いたんですが表にはAという英文字しか 表示されなくて困っています。どなたかおわかりの方がいらっしゃるならご教授お願いします。 またもっといい書き方がありましたら教えてほしいです。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • oni_
  • ベストアンサー率0% (0/1)
回答No.2

name="ch_del[]" とやってるから $_POST["ck_del"]で参照するのは無理じゃないか? ちなみに 前の人の回答にちょっと追加で 検索結果表示にちょっと手入れ <td><input type="checkbox" name="ck_del[]"VALUE="<?= $rows ?>"></td> ↓↓↓↓↓↓↓↓↓↓↓↓ <td><input type="checkbox" name="ck_del"VALUE="<?php implode(",",$rows) ?>"></td>

roba1234
質問者

補足

name="ck_del[]"これは配列を渡すつもりでやりましたけど...<? while($rows = mysql_fetch_assoc($result)): ?><---このループを実行してDBの検索結果を表示ながら左にチェックボックスをつけて表示したいです。そこでチェックボックスのVALUEに配列の値をつけてPOSTで渡してまたループを実行してチェックしたものだけ次の画面に表示してやろうと思いましたがなかなかうまく行かないです。↑↑↑↑↑↑↑↑私の考えでした。もしまちがっているなら正しい考え方を教えてもらえないですか??よろしくお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

さすがに <input type="checkbox" name="ck_del[]"VALUE="<?= $rows ?>"> は乱暴すぎるでしょう。 PHPのオブジェクトをhtmlで引き継ごうとしています? そこで考えてみたんですが こんな風に、カンマ区切りでvalueを渡してやれば ご希望のケースも対応できないこともないかと。 <?PHP if($_POST["ch_del"]){ foreach ($_POST["ch_del"] as $key=> $val){ $_POST["ch_del"][$key]=split(",",$val); } print "<pre>"; print_r($_POST); print "</pre>"; } print <<<eof <form action=$PHP_SELF method=post> <input type="checkbox" name="ch_del[]" value="20060101,aaaa"> <input type="checkbox" name="ch_del[]" value="20060801,bbbb"> <input type="checkbox" name="ch_del[]" value="20061001,cccc"> <input type="submit" value="送信"> eof; ?>

roba1234
質問者

補足

ご教授ありがとうございます。他人のコードを拝見しながら自分で模索しているものなので、思いついたのがこんな方法しかなかったんです。完成したい機能はDB検索結果を表示するとき行ごとにcheckboxを付けます。さらにその画面でチェックをしたものだけ次の画面に持っていって表示させたいです。そこでなんですがほかにいい方法がありましたら教えてもらえないですか?すみません!未熟なもので説明とか下手でお手数をおかけしました。

関連するQ&A

  • PHP&mysqlで、選択したcheckboxを次ページで表示させる方法

    php&mysqlの初心者です。 現在、以下の様なホームページを考えています。 (1)DB内を検索 (2)DBアクセスし、検索結果を表で表示。  その際、checkboxを左につける。 (3)チェックされたレコードを再表示。 (1)から(2)まではうまくいくのですが、 checkboxでチェックされたレコードを再表示させる部分で 悩んでいます。 具体的には以下のような感じです。 ●(2)の部分 while($row = mysql_fetch_array($result)) { echo "<tr><td>"; echo "<input type=checkbox name=d_decide value="; $row{renban}; echo ">"; echo "</td><td>"; echo $row{"renban"}; echo "</td><td>"; echo $row{"namae"}; … ●(3)の部分 for($i=0; $i<count($d_decide);$i++) { echo $i; echo $d_decide{$i}; echo $_POST[d_decide]{$i}; echo "<br>"; } … これで表示されません。 何とか解決する方法を教えてください。

    • 締切済み
    • PHP
  • cssでテーブルの位置を設定するには?

    <table border="1" align="left">でテーブルの位置を競ってすることはできたのですが スタイルシートで行いたいです。 そもそも他のテーブルはすべて中央に寄せたいため、 table { margin-left: auto; margin-right: auto; } としています。 そのうえで、任意のテーブルのみ左に寄せて表示したいので table.test { align:left; } としたのですが、うまくいきません。 ---------------------------------------------------------- <html> <head> <title>test</title> <STYLE type="text/css"> table { margin-left: auto; margin-right: auto; width: 40%; } table.test { width: 80%; align:left; } </STYLE> </head> <body> <table border="1"> <tr><th>見出</th><th>見出</th></tr> <tr><td>セル</td><td>セル</td></tr> </table> <br><br><br> <table border="1" align="left"> <tr><th>見出</th><th>見出</th></tr> <tr><td>セル</td><td>セル</td></tr> </table> <br><br><br> <table border="1" class="test"> <tr><th>見出</th><th>見出</th></tr> <tr><td>セル</td><td>セル</td></tr> </table> </body> </html> ----------------------------------------------------- このコードだと、 table.test { width: 80%; align:left; } の、 width: 80%; の部分は認識されるようですが、align:left;は無視されます。 スタイルシートでテーブルの位置を設定する方法をご教授ください。

    • 締切済み
    • CSS
  • PHP + MySQLを使用して詳細画面を開く

    いま下記のソースで一覧画面が表示されます! 氏名をクリックしたら別ウインドウで詳細画面を表示させたいのですがやり方がわかりません 参考までに教えてください <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","password","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html>

    • ベストアンサー
    • MySQL
  • PHPでフォーム作成について(初歩的質問)

    PHPに関しては超初心者のものです。 テキストで学び始めたのですが、HTMLのフォームにPHPスクリプトが組み込まれた以下のようなプログラムの時、写真のようになってうまく表示されません(当然動作しません)。 経験者の方なら、おわかりになられると思うのですが、調べてもわからず困っています。 お助けをよろしくお願いいたします。 【環境】 Windows XP, XAMPP(PHP5.3/Apache2.2・・・) 【ソース】 <?php //------------------------------------------------------- // ■ 初期値設定 //------------------------------------------------------- $kname = ""; ~ (中略) ~ ?> <hr> <b>会員登録フォーム)</b><p> <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST" enctype="multipart/form-data"> <table border="1" width="600" cellspacing="0" cellpadding="0"> <?php //-------------------------------------------------- // □ 会員名 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">会員名</td> <td align="left" width="450"> &nbsp;<input type="text" name="kname" value="<?=$kname?>" size="40"> </td> </tr> <?php //-------------------------------------------------- // □ 住所 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">住所</td> <td align="left" width="450"> &nbsp;<select name="ken"> <option value="1"<?if ($ken=="1"){echo " selected";}?>>北海道</option> <option value="2"<?if ($ken=="2"){echo " selected";}?>>青森県</option> <option value="3"<?if ($ken=="3"){echo " selected";}?>>秋田県</option> <option value="4"<?if ($ken=="4"){echo " selected";}?>>岩手県</option> </select> </td> </tr> <?php //-------------------------------------------------- // □ 性別 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">性別</td> <td align="left" width="450"> &nbsp;<input type="radio" name="seibetsu" value="1"<?if ($seibetsu=="1"){echo " checked";}?>>男性 &nbsp;<input type="radio" name="seibetsu" value="2"<?if ($seibetsu=="2"){echo " checked";}?>>女性 </td> </tr> <?php //-------------------------------------------------- // □ メールアドレス //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">メールアドレス</td> <td align="left" width="450"> &nbsp;<input type="text" name="mail" value="<?=$mail?>" size="30"> </td> </tr> <?php //-------------------------------------------------- // □ パスワード //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">パスワード</td> <td align="left" width="450"> &nbsp;<input type="password" name="pw" value="<?=$pw?>" size="30"><br> &nbsp;5文字以下の半角数字を入力して下さい。 </td> </tr> <?php //-------------------------------------------------- // □ 画像ファイル //-------------------------------------------------- ?> ~ 中略 ~ <?php //-------------------------------------------------- // □ 備考 //-------------------------------------------------- ?> <tr> <td align="center" width="150" bgcolor="#b2ce77">備考</td> <td align="left" width="450"> &nbsp;<textarea name="biko" cols="60" rows="10"><?=$biko?></textarea> <input type="hidden" name="no" value="abc"> </td> </tr> </table> <br> <?php //-------------------------------------------------- // □ 登録ボタン //-------------------------------------------------- ?> <input type="submit" name="submit" value="   登録する   "> </form> </body> </html>

    • 締切済み
    • PHP
  • PHPでMYSQLを使ったログイン

    PHPでMYSQLを使いってログインフォームを作ったのですが 画像の上の方ようなテーブルを作りPHP側のログインフォームでログインしてもらい 画像のusernameの[S]でログインしたらIDとFirst NameとLast NameをPHPで 画像の下の方のように表示するようにしたいのですが echo "<tr><th>ID</th><th>USERNAME</th><th>First Name</th><th>Last Name</th></tr>"; $st = ("select * from kd3musers where username='$username'"); (この間) echo "<tr><td>$id</td><td>$username</td><td>$first_name</td><td>$last_name</td></tr>"; (この間)の中身がわかりません。 別の書き方や、わかる方がいましたらよろしくお願いします

    • ベストアンサー
    • PHP
  • PHPでMySQLにデーターを追加するところで壁に当たってしまいました

    PHPでMySQLにデーターを追加するところで壁に当たってしまいました。 PHP5.3&MYSQL5.1 1.フォームへ入力 2.確認画面 3.MySQLへデーター追加 1.form <html> <head><title></title></head> <body> <form method="post" action="conf.php"> <table> <tr><th>番号</th><td><input type="text" name="id" /></td></tr> <tr><th>タイトル</th><td><input type="text" name="title" /></td></tr> <tr><th>テキスト</th><td><textarea name="cont" cols="40" rows="5" /></textarea></tr> <tr><th>日付け</th><td><input type="text" name="update" size="10" /></td></tr> </table> <input type="submit" value="送信" /><input type="reset" value="リセット" /> </form> </body> </html> 2.確認画面 <html> <head><title></title></head> <body> <table> <tr><th>番号</th><td><?php echo htmlspecialchars($_POST["id"]) ?></td></tr> <tr><th>タイトル</th><td><?php echo htmlspecialchars($_POST["title"]) ?></td></tr> <tr><th>テキスト</th><td><?php echo htmlspecialchars($_POST["cont"]) ?></td></tr> <tr><th>日付け</th><td><?php echo htmlspecialchars($_POST["update"]) ?></td></tr> </table> <form method="post" action="upld.php"> <input type="hidden" name="did" value="<?php echo htmlspecialchars($_POST["id"]) ?>" /> <input type="hidden" name="title" value="<?php echo htmlspecialchars($_POST["title"]) ?>" /> <input type="hidden" name="cont" value="<?php echo htmlspecialchars($_POST["cont"]) ?>" /> <input type="hidden" name="update" value="<?php echo htmlspecialchars($_POST["update"]) ?>" /> <input type="submit" value="登録" /> </form> </body> </html> 3.MySQLへデーター追加 <?php $Con = mysql_connect("localhost","root",""); if ($Con == false) {dir ("MySQLの接続に失敗。");} if (!mysql_select_db("phpdata",$Con)) {dir ("データーベース接続に失敗。");} $sql = "insert into daimoku(id,title,cont,update) values('".$_POST["id"]."','".$_POST["title"]."','".$_POST["cont"]."','".$_POST["update"]."')";//SQL文の作成 $res = mysql_query($sql) or die(mysql_error());//クエリの実行 mysql_close($Con);//切断 ?> <html> <head> <title></title> </head> <body> <p>ご登録ありがとうございました。</p> <a href="01.php">戻る</a> </body> 以上のコードでデーターの追加が出来ません。 どなたか教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • チェックボックス + フリーワード検索 PHP&MYSQL

    現在検索画面の作成をしているのですが、分からないことがありましたので 質問をさせて頂きました。 検索画面ですが、簡単な2ページ構成になっております。(kensaku.phpとresult.php) 仕様としてはkensaku.phpにチェックボックス(複数選択可)と フリーワードがあり、一つの検索ボタンで検索し結果をresult.phpに表示させようと思っております。データベースはMYSQLです。 検索ボタンが一つしかないため、もしチェックボックスが選択されず、フリーワードだけ入力されたのであれば、それだけで検索。その逆のもし チェックボックスだけ選択されたのであればそれだけで検索。 また両方入力されたのであれば、両方のデータを検索できるように したいと思っております。 フリーワード検索までは出来るようになったのですが、 チェックボックス検索(両方検索・片方のみ検索)などが どうしても出来ません。 どなたかご存知の方ご教授して頂けないでしょうか。 宜しくお願い致します。 こちらがコードになります。 1,kensaku.php <form action="result.php" method="POST" > <table class="font12" cellpadding="5" cellspacing="10" width="430" align="center"> <tr> <td> <span class="checkbox"><input type="checkbox" name="sejyutu[]" value="1" />aaa</span> <span class="checkbox"><input type="checkbox" name="sejyutu[]" value="2" />bbb</span> <span class="checkbox"><input type="checkbox" name="sejyutu[]" value="3" />ccc</span><br /> </td> </tr> <tr> <td><input type="text" name="sejyutu_else" value="フリーワード検索" size="30" /></td> </tr> <tr> <td colspan="2" align="right"><input type="submit" value="検索する" /></td> 2, result.php <?php $sejyutu = $_POST["sejyutu"]; $sejyutu_else = $_POST["sejyutu_else"]; if($sejyutu and sejyutu_else<>''){ //DB接続・選択 if (!$int_connect = @mysql_connect('localhost','aaa','aaaa')) { die("can't connect mysql server."); } //データベースに接続 if (!@mysql_select_db("database", $int_connect)) { die("can't use selected database."); } $sql = "select * from table where sejyutu_else like'%$sejyutu_else%'"; $result=mysql_query($sql,$int_connect); $rows=mysql_num_rows($result); ?> <table width="430" cellpadding="5" cellspacing="0" class="font12"> <?php while($row = mysql_fetch_array($result)){ ?> <tr> <td colspan="2"><p class="salon_name"><?php echo $row["name"]; ?></p></td> </tr> <tr> <td valign="top"><p class="salon_item">最寄り駅:</p></td> <td class="salon_detail"><?php echo $row["station"]; ?></td> </tr> <tr> <td valign="top"><p class="salon_item">住所:</p></td> <td class="salon_detail"><?php echo $row["address"]; ?></td> </tr> <tr> <td valign="top"><p class="salon_item">施術名</p></td> <td class="salon_detail"><?php echo $row["sejyutu"];?></td> </tr> <?php } } ?> </table> </body> </html>

    • ベストアンサー
    • PHP
  • チェックボックスで合計値を計算に機能追加したい

    チェックボックスで差引き値を計算し、 さらに差引き値を一定値以下にしないものを制作したいとおもいます。 チェックボックスごとに決まった値が引かれるものと、 チェックボックスに2つ以上チェックで一定値が引かれる2種類が希望です。 現在、別サイトにて参考にさせていただきました以下のソースとなっておりますが、 この形には拘りません。 数値、内容等は仮のものです。 完成形イメージを画像添付致します。 ご回答、よろしくお願いいたします。 <script language="JavaScript"> <!-- plice=new Array(); plice[0]=0.5; plice[1]=0.3; plice[2]=0.2; function keisan(){ goukei=2.5; for(i=0;i<=2;i++){ if(document.myform.elements[i].checked==true){ goukei=goukei-plice[i]; } } document.myform.total.value=goukei.toFixed(1); } //--> </script> <form name="myform"> <table cellpadding="1" cellspacing="0" border="0"> <tr> <td align="left" nowrap><font color="#999999">◆</font>イモ(1500円)</td> <td align="left"><input type="checkbox" onclick="keisan()"> 箱</td> </tr> <tr> <td align="left"><font color="#999999">◆</font>魚(4000円)</td> <td><input type="checkbox" onclick="keisan()"> 匹</td> </tr> <tr> <td align="left"><font color="#999999">◆</font>ウニ(300円)</td> <td><input type="checkbox" onclick="keisan()"> 個</td> </tr> <tr> <td align="left"><font color="#ff0000">■</font><b><font color="#ff0000">合計金額</font></b></td> <td align="left"><input type="text" name="total" value="2.5"> 円</td> </tr> </table> </form>

  • 画面表示が100%になりません。

    <table>でいろいろやっている内に、画面表示が100%にならず、周囲1%程度の余白ができてしまいました。 外部CSSを併用したためか、と思いはずしてみても変わりません。(cssでもそのような記述はしていません。)どこを修正すればよいのでしょうか? どなたかご指導お願い致します。 <html> <head> <title>***</title> <link href="css/css" rel="stylesheet" type="text/css"> </head> <body > <TABLE border="0" width="100%" height="100% " bgcolor="#000000"> <TBODY> <tr> <td align="center"> <TABLE border=2 width="480" height="480" bgcolor="#222222" bordercolor="#000000" > <TBODY> <tr> <td align="center"> 省略 </td> </tr> </TBODY> </TABLE> <p align="center"></P> </td> </tr> </TBODY> </TABLE> </body> </html>

    • ベストアンサー
    • HTML
  • JavaScriptの質問です。

    JavaScriptの質問です。 下記フォームで、 1番が入力されると、 2、3番目のエリアがグレーになって入力不可になる方法を教えてください。 <tr> <th align="right">1番</th> <td><input type="text" size="10" name="shopid" id="shopid" /></td> </tr> <tr> <th align="right">2番</th> <td><input type="text" size="10" name="area" /></td> </tr> <tr> <th align="right">3番</th> <td><input type="text" size="10" name="business" /></td> </tr> <tr> よろしくお願いします。

専門家に質問してみよう