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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1438閲覧

個数が1以上の商品をまとめてカートに入れる機能の実装。

Tsukumo_Aoi

総合スコア21

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/02/07 05:09

商品をまとめてカートに入れる仕組みを作っています。
画像にある+ボタンを押すと個数が増えるようになっています。

この個数が1以上になっている商品を『かごに入れる』ボタンを押すことで一括でカート画面に追加する仕様にしたいのですが、
個数(画像では人参の部分の個数のみ)の情報のみ送られて商品コードが送られません。

連想配列で商品コードとその個数を送れば良いのかとも思いますが、ご教示お願いしたいです。

PHP

1main.PHP 2 3 4 5<?php 6session_start(); 7 8?> 9<html> 10 <head> 11 <link href=" ../bootstrap.min.css" rel="stylesheet"> 12 <link rel="stylesheet" href="two_cullum.css"> 13 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 14 <script src=" ../bootstrap.min.js"></script> 15 16<script type="text/javascript"> 17 18window.addEventListener('DOMContentLoaded', function(e){ 19 document.querySelector('[type=button][value=かごに入れる]').addEventListener('click',function(e){ 20 cartin(); 21 }); 22}); 23function cartin() { 24 if(f=document.querySelector('#f0')){ 25 f.parentNode.removeChild(f); 26 } 27 var f=document.createElement('form'); 28 f.setAttribute("id","f0"); 29 f.setAttribute("method","post"); 30 f.setAttribute("action","o_cart.php"); 31 var num=document.createElement('input'); 32 num.setAttribute("type","hidden"); 33 num.setAttribute("name","num"); 34 num.setAttribute("value",document.querySelector('form[name=ko] input[name=num]').value); 35 var code=document.createElement('input'); 36 code.setAttribute("type","hidden"); 37 code.setAttribute("name","code"); 38 code.setAttribute("value",document.querySelector('form[name=muni] input[name=code]').value); 39 f.appendChild(num); 40 f.appendChild(code); 41 document.querySelector('body').appendChild(f); 42 document.querySelector('#f0').submit(); 43} 44 45</script> 46 47 <meta charset="utf-8"> 48 <title>商品選択</title> 49 50 51 </head> 52<body> 53 <div id="wrap"> 54 <header> 55 56 <h1>商品選択</h1> 57 </header> 58<div id="sidenavi"> 59 60<br> 61<?php if (isset($_SESSION['NAME'])){ 62 echo "ようこそ{$_SESSION["NAME"]}さん"; 63 } ?> 64 <h2>商品種目</h2><br> 65 お探しの商品の種目を選択してください。 66 67 <br> 68 <br> 69 <ul class="nav nav-tabs"> 70 <li><a href="#ContentA" data-toggle="tab">野菜</a></li> 71 <li><a href="#ContentB" data-toggle="tab">肉類</a></li> 72 <li><a href="#ContentC" data-toggle="tab">鮮魚</a></li> 73 <li><a href="#ContentD" data-toggle="tab">パン・米・乳製品</a></li> 74 <li><a href="#ContentE" data-toggle="tab">惣菜</a></li> 75 <li><a href="#ContentF" data-toggle="tab">飲料</a></li> 76 <li><a href="#ContentG" data-toggle="tab">調味料</a></li> 77 <li><a href="#ContentH" data-toggle="tab">菓子</a></li> 78 <li><a href="#ContentI" data-toggle="tab">日用品</a></li> 79 <li><a href="#ContentJ" data-toggle="tab">衣類</a></li> 80 </ul> 81</div> 82 83 <div id="contents"> 84 <frame name="cont"> 85 <div class="tab-content"> 86 <div class="tab-pane" id="ContentA"> 87 <br> 88 <?php require_once"new_store_yasai.php"; ?> 89 </div> 90 <div class="tab-pane" id="ContentB"> 91 <br> 92 <?php require_once"new_store_niku.php"; ?> 93 </div> 94 <div class="tab-pane" id="ContentC"> 95 <br> 96 <?php require_once"new_store_sakana.php"; ?> 97 </div> 98 <div class="tab-pane" id="ContentD"> 99 <br> 100 <?php require_once"new_store_pan.php"; ?> 101 </div> 102 <div class="tab-pane" id="ContentE"> 103 <br> 104 <?php require_once"new_store_souzai.php"; ?> 105 </div> 106 <div class="tab-pane" id="ContentF"> 107 <br> 108 <?php require_once"new_store_inryou.php"; ?> 109 </div> 110 <div class="tab-pane" id="ContentG"> 111 <br> 112 <?php require_once"new_store_tyoumiryou.php"; ?> 113 </div> 114 <div class="tab-pane" id="ContentH"> 115 <br> 116 <?php require_once"new_store_kasi.php"; ?> 117 </div> 118 <div class="tab-pane" id="ContentI"> 119 <br> 120 <?php require_once"new_store_nitiyou.php"; ?> 121 </div> 122 <div class="tab-pane" id="ContentJ"> 123 <br> 124 <?php require_once"new_store_irui.php"; ?> 125 </div> 126 </div> 127 </frame> 128 </div> 129 130 <footer> 131 132 <a href="o_storetop.php"> 133 <input type="button" style="WIDTH: 200px; HEIGHT: 100px;" value="トップに戻る"> 134 </a> 135 136 <span style="float: right"> 137 138<form name="muni"> 139<input type="hidden" name="code" value="<?php $g['code'] ?>"> 140<input type="button" value="かごに入れる" style="WIDTH: 200px; HEIGHT: 100px;"> 141 142 143 144 145 <a href="o_t_cart.php"> 146 <button type="button" style="WIDTH: 200px; HEIGHT: 100px;">かごの中を見る<span class="badge"></span></button> 147 </a> 148 </form> 149 </span> 150 </footer> 151 152</body> 153</html> 154

PHP

1view.PHP 2 3 4 5<html> 6<head> 7<meta charset="utf-8"> 8<title>商品選択</title> 9<script> 10function minus($code){ 11 12 var quant = document.getElementById("kosu" + $code); 13 14 if(quant.value > 0){ 15 quant.innerHTML = quant.value--; 16 } 17} 18function plus($code){ 19 20 var quant = document.getElementById("kosu" + $code); 21 22 quant.innerHTML = quant.value++; 23} 24</script> 25</head> 26 27<body> 28 29<table> 30 <?php foreach ($goods as $g) { ?> 31 <tr> 32 <td> 33 <?php echo img_tag($g['code']) ?> 34 </td> 35 <td> 36 <p class="goods"><?php echo $g['name'] ?></p> 37 <p><?php if ( $g['zaiko'] == 0 ) { 38 echo "在庫切れ"; 39 } 40 ?></p> 41 </td> 42 <td width="80"> 43 <p><?php echo $g['price'] ?></p> 44 45 46<form name="ko"> 47<div style="display:inline-flex"> 48<input type="button" id="<?= 'mi' . $g['code'] ?>" value="" class="btn btn-default btn-sm" onClick="minus('<?= $g["code"] ?>');" 49<?php 50if($g['zaiko'] == 0){ 51 echo 'disabled'; 52} ?> 53> 54<input type="number" name="num" id="<?= 'kosu' . $g['code'] ?>" size="1" maxlength="3" value="0" min="0" 55<?php 56if($g['zaiko'] == 0){ 57 echo 'disabled'; 58} ?> 59> 60<input type="button" id="<?= 'pl' . $g['code'] ?>" value="" class="btn btn-primary btn-sm" onClick="plus('<?= $g["code"] ?>');" 61<?php 62if($g['zaiko'] == 0){ 63 echo 'disabled'; 64} ?> 65> 66</div> 67</form> 68 <?php } ?> 69</td> 70</tr> 71</table> 72</body> 73</html> 74

PHP

1cart.PHP 2 3 4 5<?php 6session_start(); 7 8 require 'o_syouhinsentaku_common.php'; 9 if (isset($_SESSION['NAME'])){ 10 echo "ようこそ{$_SESSION["NAME"]}さん"; 11 12 } 13var_dump($_POST) 14 ?> 15 16<?php 17 $rows = array(); 18 $sum = 0; 19 $pdo = connect(); 20 if (!isset($_SESSION['cart'])) { 21 $_SESSION['cart'] = array(); 22 } 23 24 $_SESSION['cart'][$_POST['code']] += $_POST['num']; 25 26 27 foreach($_SESSION['cart'] as $code => $num) { 28 $st = $pdo->prepare("SELECT * FROM shohin_tb WHERE code=?"); 29 $st->execute(array($code)); 30 $row = $st->fetch(); 31 $st->closeCursor(); 32 $row['num'] = strip_tags($num); 33 $sum += $num * $row['price']; 34 $rows[] = $row; 35 } 36 require 'o_t_cart.php'; 37?> 38

イメージ説明説明](8f609a29798c81caae1148d0540e66e3.png)

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

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

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

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

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

guest

回答1

0

具体的にどこをどうするとまでは言い難いですが
たとえば

javascript

1 var num=document.createElement('input'); 2 num.setAttribute("type","hidden"); 3 num.setAttribute("name","num"); 4 num.setAttribute("value",document.querySelector('form[name=ko] input[name=num]').value); 5 f.appendChild(num);

の箇所を

javascript

1if(なんたらの数値>0){ 2 var num=document.createElement('input'); 3 num.setAttribute("type","hidden"); 4 num.setAttribute("name","num"); 5 num.setAttribute("value",document.querySelector('form[name=ko] input[name=num]').value); 6 f.appendChild(num); 7}

のように数字をみて追加するような仕様にするのが妥当では?

投稿2018/02/07 05:44

yambejp

総合スコア114784

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

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

Tsukumo_Aoi

2018/02/07 05:58

いまやってvar_dump($_POST)で見てみたのですが商品コードがカートに飛んでないみたいです。
yambejp

2018/02/07 06:00

> 商品コードがカートに飛んでない 数値のとり方がまちがえているのでは? 数値が0より大きくなければ要素が追加されないので 当然コードはとびません
yambejp

2018/02/07 06:02

よくよくかんがえたら、追加するしないをいろいろやると構造が面倒なので 数値をみてその要素のdisabledをtrue/falseで変更するほうが すっきりするかもしれません
Tsukumo_Aoi

2018/02/07 06:03

あ! なるほど!! その発想は気づきませんでした。 やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問