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

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

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

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

Q&A

解決済

2回答

1966閲覧

session関数の使い方について

SayakaxxSakura

総合スコア19

PHP

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

0グッド

0クリップ

投稿2017/09/27 04:19

PHP初心者です。
先日質問させていただいた内容でページング機能
というものをつけました。

ページング機能をつけると、件数に応じてページが変わってしまう為、
入力したデータが正しく保持されない状況になっております。
現在は ($_POSTでデータを渡しているため)

なんとなくSession_start()関数を使えばできるのはわかるのですが、
初めて使う関数の為、具体的にどこをどう変えて良いのかがわかりません。
流れとしては、

index.php(フロント画面、注文個数を入力するselect要素アリ ページング機能あり)

↓ (POSTの為1ページ分しか値を取得できず)

confirm.php(注文内容画面)→データを保持したまま見積もり書等の印刷が可能

↓ (名前、値段等の値がname属性で紐付いて無いため受け渡しが出来ずメールは白紙)
send.php(注文内容送信完了画面) ※現在製作中

---index.php---

<div class="menu-wrapper container"> <h1 class="logo">CATALOG</h1> <p>商品数は全てで<?php echo Menu::getCount() ?>品です</p> <form action="confirm.php" method="post"> <div class="menu-items"> <?php isset($_REQUEST['p'])? $_REQUEST['p'] *20 :0 * 20 ?> <?php foreach(array_slice($menus,isset($_REQUEST['p'])? ($_REQUEST['p'] -1 ) *20 :0 * 20, 20) as $menu): ?> <div class="menu-item"> <img src="<?php echo $menu -> getImage(); ?>" class="catalog-image" alt="<?php echo $menu -> getJan() ?>"><!-- これで画像を呼び出し --> <!-- 配列$menusの要素を変数$menuとするforeach文 --> <h3 class="catalog-title"> <a href="show.php?name=<?php echo $menu -> getName() ?>"> <?php echo $menu -> getName(); ?></a> </h3><!-- これでタイトルを呼び出し --> <!--?php if ($menu instanceof Summer): ?--> <p class="menu-item-type">Category<i class="fa fa-angle-double-right" aria-hidden="true"></i><?php echo $menu -> getType()?></p><!--サブカテゴリを表示--> <!--?php else: ?--> <!--p class="menu-item-type"--><!--?php echo $menu>getAnimals()?></p--> <!--?php endif ?--> <p class="jan">JANCode<i class="fa fa-angle-double-right" aria-hidden="true"></i><?php echo $menu -> getJan() ?></p> <p class="price">¥<?php echo $menu -> getTaxPrice() ?>(税込)</p><!-- これで値段を呼び出し --> <!--input type="text" value="0" name="<!--?php echo $menu -> getName() -- ?>"--> <select name="<?php echo $menu -> getName()?>" class="select"> <option value="0">0<i class="fa fa-caret-down" aria-hidden="true"></i></option> <?php for($i = 1; $i <= 99; $i++): ?> <option value="<?php echo $i?>"><?php echo $i?></option> <?php endfor ?> </select> <span>個</span> </div> <?php endforeach;?> <div class="pageWrap"> <?php for($i = 1; $i <= ceil(Menu::getCount() / 20); $i++):?> <?php if($i == $_REQUEST['p']) :?> <a class="pageColor-active" href="http://localhost/Catalog/?p=<?= $i ?>"><?= $i ?></a> <?php else :?> <a class="pageColor" href="http://localhost/Catalog/?p=<?= $i ?>"><?= $i ?></a> <?php endif ?> <?php endfor?> </div> </div> <div class="mitumori-wrap"> <h3>簡易見積り書を作成</h3> <div class="mitumori-background"> <div class="mitumori-wrapper"> <p>お見積書宛名</p> <input type="text" name="name" vaue="" class="mitu"/><span class="right">御中</span> </div> <p class="buttonwrap"><input type="submit" value="見積もり内容を確認" class="button" /></p> </div> </div> </form> </div>

---confirm.php---

<div class="order-wrapper"> <div class="order-border-wrap"> <h2 class="confi-title">見積もり内容</h2> <div class="order-wrap2"> <div class="order-left"><h2>商品内容</h2></div> <div class="order-center"><h2>数量</h2></div> <div class="order-right"><h2>小計</h2></div> </div> <?php $totalPayment = 0 ?> <?php foreach ($menus as $menu): ?> <!-- 変数$orderCountに$_POSTで受け取った値を代入 --> <?php $orderCount = $_POST[$menu -> getName()]; echo $menu -> setOrderCount($orderCount); $totalPayment += $menu -> getTotalPrice(); //$totalPaymentに注文の合計を代入 ?> <?php if(1 <= $orderCount): ?> <div class="order-wrap"> <div class="left"> <img src="<?php echo $menu -> getImage(); ?>" class="catalog-image-confirm" alt="<?php echo $menu -> getJan() ?>"> </div> <div class="center"> <p class="order-item-type"><?php echo $menu->getType() ?></p> <p class="order-name"> <?php echo $menu -> getName() ?> <p class="order-texprice">¥<?php echo $menu -> getTaxPrice() ?></p> </div> <div class="right"> <p class="order-count"><?php echo $orderCount ?>個</p> </div> <div class="right2"> <p class="order-price">¥<?php echo $menu -> getTotalPrice() ?></p> </div> </div> <?php endif ?> <?php endforeach ?> </div> <h3 class="tex-Total-Price">合計金額: <span class="red">¥<?php echo $totalPayment ?></h3> <a data-target="con1" class="modal-open"><button class="print">お見積書を発行</button></a> <br class="clear"> </div>

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

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

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

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

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

masaya_ohashi

2017/09/27 04:50

1ページめにある商品Aを10個、2ページ目にある商品Bを10個にして、2ページめで「見積もり内容を確認」を押すと、2ページめの情報しかconfirm.phpに飛ばない、ということを指していますか?
guest

回答2

0

ベストアンサー

まずページング機能が単純なaタグで作られている限り、お望みの機能は実現できないと思います。セッションを使うにしても、index.phpに送られてくる情報がpしかないので、ページが切り替わるたびにデータを引き継ぐことができません。

例えばselectの値が変わるたびにページ切り替えのリンクのgetパラメータに商品名=数の要素を足していくようなJavaScriptを組み込めばページをまたいだパラメータの引き継ぎが可能になるかと思います。

投稿2017/09/27 06:02

masaya_ohashi

総合スコア9206

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

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

SayakaxxSakura

2017/09/27 06:36

承知いたしました! ありがとうございます。 一度そちらも検討しなんとか頑張って見ます!
guest

0

セッションの使い方なら、検索すればいくらでも初心者用の解説ページ見つけられます。
たとえばこんなのが。

セッション管理 初心者用PHP入門
http://www.standpower.com/php_session.html

PHPでセッションを使う方法【初心者向け】 | TechAcademyマガジン
https://techacademy.jp/magazine/4970

これらを読むだけでだいたいセッションの使い方は理解できると思います。

初歩的なことはここで聞くより検索した方が楽で早いですよ。
ググレカスと言われないためにも、まず検索するクセを身につけましょう。

投稿2017/09/27 05:38

ooeok

総合スコア469

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

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

SayakaxxSakura

2017/09/27 05:45

上記の件ありがとうございます。 上記のサイト自分でも検索し、何度も読み閲覧しました。 なんとなくセッションの使い方はわかりますが、現状自分の作っているものに当てはめるとなると ??? となり、自分と似たような状況の方がいない方といろいろ調べ回りましたが、わからなかった為ここにて質問させて頂いております。 そもそも、自分が初心者な割に自分の身の丈にあってないものを作ろうとしているのは重々承知しております。 ですが、恥を忍んでも馬鹿にされてもこのままわからず諦めるのは嫌なので質問させて頂きました。 ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問