PHP初心者です
現在商品数が180件程度のカタログサイトを作っています。
以前質問させていただいて、優しい方のお陰でページング機能を追加することができました。
しかしここで、問題が発生したのが、1ページ目で入力した値を
2ページ目で保持できず
注文確認画面に行くと、アクティブのページの情報しか表記されません。
例:
【A】index.php?=p1 で
10件の商品を選択、
そのままページ遷移し
【B】index.php?=p2 で
こちらでは8件の商品を選択
↓
注文内容確認ボタン
【注文内容確認ページ】
ご注文内容は8件です
となり【A】で入力した値を保持できません。
これがわからず3日前に同じ質問させていただいたのですが、
session関数などを使えばできるとの回答でした。
ここ3日間ずっと検索をし
input hiddenやsessionを使って色々模索してみましたが
エラーがでてページが表示されなくなったり
値保持ができず何もかわらなかったり
とがっつりハマってしまっています。
なんとか解決策を教えて頂けないでしょうか?
よろしくお願いいたします。
調べたワード
PHP session 値保持
PHP session 使い方
PHP session 値 渡せない
PHP session
ページング 値保持
ページング session
session foreach php
ページング session 値保持
php session 初心者
php session 関数 使い方
上記で検索してくるページはほとんど見ましたが
どれを見ても自分と近い状況の方はおらず理解できませんでした…
3日前とかわったところは正直ほとんどありません
色々検索、施行した結果結局何もわからなかったです。
session関数を使ったカウントはできましたが
値の受け渡しがやはりできませんでした
【フロント index.php】
<?php require_once ('data.php'); require_once('menu.php'); session_start(); ?> <form action="confirm.php" method="post"> <div class="item-item"> <h3 class="lines-on-sides">CATALOG</h3> <p class="item-title">カタログ</p> </div> <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() ?>" name="img"><!-- これで画像を呼び出し --> <h3 class="catalog-title"> <a href="show.php?name=<?php echo $menu -> getName() ?>"> <?php echo $menu -> getName(); ?></a> <?php $_SESSION ['name'] = $menu -> getName(); ?> </h3> <p class="menu-item-type">Category<i class="fa fa-angle-double-right" aria-hidden="true"></i><?php echo $menu -> getType()?></p><!--サブカテゴリを表示--> <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><!-- これで値段を呼び出し --> <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>
【確認ページ confrm.php】
<?php require_once('data.php'); $conpanyName = $_POST['name']; session_start(); ?> <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
プレビュー