0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CSVを取り込んで作成した一覧ページから詳細ページへのデータPOST送信

Posted at

はじめに

今回は、PHPで作成しているCSV一覧を作成後、一覧の一部データを取得した詳細ページを作成することができたのでアウトプットのためにまとめます。

試したこと

URLにOpenSSLで暗号化したデータを載せてページ遷移後に復号しようとしていましたが、
あまりうまくいかなかったためOpenSSLではない方法で作成しました。

送信ページ

<!DOCTYPE html>
<?php
// エラー表示
ini_set('display_errors', 1);
?>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
<head>
    <title>人材絞り込み表示</title>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="styling.css">
</head>
<body>
<?php
// 読み取り専用でsample.csvを開きます。
$f = fopen("sample.csv", "r");
// POSTでデータ送信
if(!empty($_POST)){
$name1 = $_POST['sample_name1'];
$name2 = $_POST['sample_name2'];
echo '選択された名前は'.$name1.'と'.$name2.'です。<br>';}
echo '<br>';
while($data = fgetcsv($f)){
    // 1行分の要素すべてを文字列として結合しても空ではない、つまり空行でなければ出力します。
    if(implode($data) != null){
    // 読み込んだ結果について
    // 二つ目の名前が一致していたら表示
    if (preg_match("/$value1/", $name1)) {
    // 二つ目の名前が一致していたら表示
    if (preg_match("/$value2/", $name2)) {
?>
<div>
<tr>
<td colspan="2"">
<form class="sample" name="form'.$i.'" action="postPlus.php" method="post">
<input name="sample_name1" type="hidden" value="<?php echo("$data[0]"); ?>">
<input name="sample_name2" type="hidden" value="<?php echo("$data[5]"); ?>">
<input type="submit" value="<?php echo("$data[2]"); ?>">
</form>
</td>
</div>

<?php
    }
        // 一つ目の名前が一致していたら非表示
        else {
        }
    }
        // 二つ目の名前が一致していたら非表示
        else {
        }
    }
}

// test.csvを閉じます。
fclose($f);

?>
</body>
<style>
.sample {display:inline-block;}
.sample input[type="submit"]{
border:none;
background:#FFF;
text-decoration:underline;
color:#00f;
}
.sample input:hover {cursor:pointer;}
</style>
</html>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="selectbox.js"></script>

受信ページ

<!DOCTYPE html>
<?php
// エラー表示
ini_set('display_errors', 1);
?>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>受信ページ</title>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="styling.css">
</head>
<body>
<?php
//職業情報の取得
// 読み取り専用でsample.csvを開きます。
$f = fopen("sample.csv", "r");
// POSTでデータ送信
if(!empty($_POST)){
$name1 = $_POST['sample_name1'];
$name2 = $_POST['sample_name2'];
while($data = fgetcsv($f)){
    // 1行分の要素すべてを文字列として結合しても空ではない、つまり空行でなければ出力します。
    if(implode($data) != null){
    // 読み込んだ結果を表示します。
    // 一つ目の名前が一致していたら表示
    if (preg_match("/$value1/", $name1)) {
    // 二つ目の名前が一致していたら表示
    if (preg_match("/$value2/", $name2)) {
?>
<div>
<tr>
<th>名前</th>
<?php echo("<td>$data[0]</td>"); ?>
</tr>
</div>
<?php
    }
        // 一つ目の名前が一致していないなら非表示
        else {
        }
    }
        // 二つ目の名前が一致していないなら非表示
        else {
        }
    }
}
// sample.csvを閉じます。
fclose($f);
?>
</body>
<style>
.sample {display:inline-block;}
.sample input[type="submit"]{
border:none;background:#FFF;text-decoration:underline;color:#00f;
}
.sample input:hover {cursor:pointer;}
</style>
</html>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="selectbox.js"></script>

参考サイト

POSTについて
https://atmarkit.itmedia.co.jp/ait/articles/1407/02/news038_2.html
https://wepicks.net/phpref-post/
https://www.sejuku.net/blog/27843

URLにGETでデータを取得する方法について
https://hirashimatakumi.com/blog/311.html

OpenSSLについて
https://www.youtube.com/watch?v=jz8e7lBvE34
(あまり参考になりませんでした)

これからの課題

今回、途中で断念したOpenSSLについて理解を深めておく必要がある
セキュリティについても同様に知識を得ておく必要を感じました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?