質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

569閲覧

phpチェックボックスの表示の方法

michi4

総合スコア33

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/02/05 15:43

編集2019/02/05 16:29

乗り物の予約システムを作成しています。
このコードで、データベースの抽出条件にあった運行情報の指定したカラムの中身を行で書き出しているのですが、行の前にひとつずつにチェックボックスを作りチェックした行のデータの受け渡しをSample2.phpに行いたいです。
その際の行ずつに対するチェックボックスの書き方と、表示されている画面の1番下にSample2.phpへデータ送信ボタンの作り方を教えていただきたいです。

<?php $host = 'localhost'; $username = 'root'; $passwd = '〇〇'; $dbname = '〇〇'; $dayOfWeek = $_POST['day']; $link = mysqli_connect($host, $username, $passwd, $dbname); if ($link) { mysqli_set_charset($link, 'utf8'); $query = 'SELECT*FROM unkou WHERE youbiID ='.$dayOfWeek; $result = mysqli_query($link, $query); while ($row = mysqli_fetch_array($result)) { ?> <table border="1" style="table-layout:fixed;" width="70%" > <tr> <td width="20"><?php echo $row['youbiID'];?></td> <td width="70"><?php echo $row['unkoumei'];?></td> <td width="50"><?php echo $row['place1'];?></td> <td width="50"><?php echo $row['place2'];?></td> <td width="50"><?php echo $row['kakaku']."円";?></td> <td width="50"><?php echo $row['time1'];?></td> <td width="50"><?php echo $row['time2'];?></td> </tr> </teble> <?php } mysqli_free_result($result); mysqli_close($link); } else { print 'DB接続失敗'; } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/05 15:46

コードを省略するなとは言いませんが、最低限、文法エラーがない状態を再現できるコードを提示してください。
michi4

2019/02/05 15:55

このような感じで書いています。
退会済みユーザー

退会済みユーザー

2019/02/05 15:58 編集

「感じ」というのは実際は違うということ? まず、<table>タグは <?php の中に入っているけど、これは手元のソースも一緒?? そういうところに気を使ってくれないと、問題解決を無駄に遅らせるだけだし、回答者に余計な手間をかけさせることになりますよ。
michi4

2019/02/05 16:02

何度もすみません。これで書いています。 条件抽出した表の表示は、問題なくできている状態です。
退会済みユーザー

退会済みユーザー

2019/02/05 16:17 編集

「表ひとつずつにチェックボックスを作りチェックしたデータの受け渡し」これをもっと詳しく書かないと、何がしたいのか読み取れません。 「チェックボックス」はどこに表示するのか?「表ひとつずつ」と書いてあることがわかりにくい。なぜなら表は一つしか書かれていない。「行一つ一つ」の書き間違いならそれはそれで問題。細かいけど、表現の正確性に欠ける。 チェックボックスは一体どう何をしたいがためにつけたいのかが読み取れません。 受ける側のソースが提示されていないので、どこに渡したいのかも不明。 「渡す」というからには、「何を(どういう値を)」「どこに」渡すのか、正確に書いてください。
michi4

2019/02/05 16:22

行と表は記載ミスです。
退会済みユーザー

退会済みユーザー

2019/02/05 16:25

コードが明らかにおかしい部分がまだありました。 <form> の開始タグがない。 <table>の閉じタグがない。 「データの受け渡し」が聞きたい内容なのか、それともボタンのHTMLがわからないのか不明。
michi4

2019/02/05 16:31

表などの1番下にデータ受け渡しの文を記載するのはどうするのか教えていただきたいことです。 ボタンのHTMLはわかります。
退会済みユーザー

退会済みユーザー

2019/02/05 16:33

チェックボックスで何の値を渡したいのかの回答は?
michi4

2019/02/05 16:35

チェックボックスでチェックした行の中身を渡したいです。
退会済みユーザー

退会済みユーザー

2019/02/05 16:48 編集

フォーム部品で渡せるのは、リテラル値のみです。配列を渡すことはできないので、全部というのは無理です。無理ではないですが、普通そんなことはしない。通常レコードのIDなど、ユニークなインデックス値を渡すものです。
退会済みユーザー

退会済みユーザー

2019/02/05 16:57

</teble> -> </table> それにしても、雑だね。
m.ts10806

2019/02/06 00:14

Sample2.phpも必要かと。 「こういうデータが渡される想定」というのがないと難しいです。 「とりあえず渡してあとは渡される情報を元に処理」では要件が分かりません。 Sample2.phpで何をやっているのでしょうか。どのような情報を受け取って何をする仕様なのでしょうか。
guest

回答2

0

自己解決

チェックボックス以外の方法で解決しました。

投稿2019/02/07 14:23

michi4

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/07 15:05 編集

追記修正依頼に対してはすぐさま反応する割に、回答に対して何もリアクションがないのはどういう了見ですかね?
michi4

2019/02/07 14:39

教えていただいたもので行ってみたのですが、何度もエラーが出てしまったので別のやり方に変えていました。貴重なお時間を使わせたままにしてしいまいすみませんでした。
m.ts10806

2019/02/07 15:08

質問内容からやり方かえるのは仕方ないとしてもこれで他の人わかりますかね? エラーは実は成長するチャンスなのでそこから逃げていてもいずれ手詰りになるだけですし結局やりたいこと何もできませんよ? 一番はすでに回答もらってるのに何も相談なしに勝手に方向性かえて勝手に解決してしまったことですけどね。同じことされたらどう思いますか?
guest

0

サンプルデータとCREATE文の提示がされていれば、動作検証するけど、ないので未検証。

php

1<?php 2ini_set('display_errors', true); 3error_reporting(E_ALL); 4 5/** 6 * XSS対策 7 */ 8function h($string) 9{ 10 return htmlspecialchars($string, ENT_QUOTES, 'utf-8'); 11} 12 13$host = 'localhost'; 14$username = 'root'; 15$passwd = '〇〇'; 16$dbname = '〇〇'; 17//$dayOfWeek = $_POST['day']; 18$dayOfWeek = filter_input(INPUT_POST, 'day'); 19 20$link = mysqli_connect($host, $username, $passwd, $dbname); 21if ($link) { 22 mysqli_set_charset($link, 'utf8'); 23 24 // 変数を連結しちゃダメ 25// $query = 'SELECT*FROM unkou WHERE youbiID ='.$dayOfWeek; 26// $result = mysqli_query($link, $query); 27 $query = 'SELECT * FROM unkou WHERE youbiID = ?'; 28 $stmt = mysqli_prepare($link, $query); 29 mysqli_stmt_bind_param($stmt, "i", $dayOfWeek); 30 31 mysqli_stmt_execute($stmt); 32 mysqli_stmt_bind_result($stmt, $id, $youbiID, $unkoumei, $place1, $place2, $kakaku, $time1, $time2); 33} else { 34 print 'DB接続失敗'; 35} 36?> 37<!doctype html> 38<html lang="ja"> 39 <head> 40 <meta charset="UTF-8"> 41 </head> 42 <body> 43 <form method="post" target="Sample2.php"> 44 <table border="1" style="table-layout:fixed;" width="70%" > 45 <?php while (mysqli_stmt_fetch($stmt)): ?> 46 <tr> 47 <td> 48 <input type="checkbox" name="chk[]" value="<?php echo h($id); ?>"> 49 </td> 50 <td width="20"><?php echo h($youbiID); ?></td> 51 <td width="70"><?php echo h($unkoumei); ?></td> 52 </tr> 53 <?php endwhile; ?> 54 </table> 55 </form> 56 </body> 57</html> 58<?php 59mysqli_free_result($result); 60mysqli_close($link); 61

投稿2019/02/05 17:05

編集2019/02/06 05:30
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/06 00:14

たぶん・formの閉じタグ忘れてますね・・
退会済みユーザー

退会済みユーザー

2019/02/06 00:17

ですね
m.ts10806

2019/02/06 00:21

あ、いえ、回答のコードのほう。
退会済みユーザー

退会済みユーザー

2019/02/06 00:23

後で直しておきます
m.ts10806

2019/02/06 00:25

すみませんよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問