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>
回答2件
あなたの回答
tips
プレビュー