PHP初心者です。詳しい方がいらっしゃいましたらよろしくお願いいたします。
データベースをSELECT文でSUM集計して表示するプログラムを作成中ですが、セレクトボックスを4つ作成する必要があります。
一つの選択で、「検索」ボタンを押して、SUBMITするのはできたのですが、2つ以上のセレクトボックスがあった場合、1つ目の選択した条件で2つ目のセレクトボックスに表示する要素をSELECT文のWHEREで絞り込みDISTINCTしたいのですが、SUBMITをおこなわずに引き渡す方法がわかりません。
例)
セレクトボックス1
りんご
みかん
いちご
れもん
上で「みかん」をクリックしたら、「みかん」の仕入実績がある取引先のみをセレクトボックス2に表示する。
セレクトボックス2
岩井商店
鈴木商店
田中商店
和田商店
不慣れで申し訳ありません。
以下、ソースを記載いたします。
度々で申し訳ありません。ソースを修正してみましたが、画面には
大分類しか表示されませんでした。
<?php $strdptfCode = filter_input(INPUT_GET, 'dpt'); var_dump($strdptfCode); $tsql = "SELECT * from 中分類マスタ where 大分類 = $strdptfCode"; //クエリーを実行 $result = sqlsrv_query($conn, $tsql); ?> <?php if (isset($_POST['dpt'])){ //クエリー文を指定 $tsql = "SELECT 大分類,中分類,週, SUM(発数) AS 発注数, SUM(発原額) AS 発注原価, SUM(発売額税抜) AS 発注売価 from dbo.VM_納品実績 where 大分類 = $dpt group by 大分類,中分類,週 order by 大分類,中分類,週"; //クエリーを実行 $result = sqlsrv_query($conn,$tsql); }?> <tbody> <?php //実行結果を描画 while($row = sqlsrv_fetch_array($result)) { printf("<tr><th>".$row['中分類']."</th>"); printf("<td >".$row['週']."</td>"); printf("<td >".number_format($row['発注数'])."</td>"); printf("<td >".number_format($row['発注原価'])."</td>"); printf("<td >".number_format($row['発注売価'])."</td></tr>"); } ?> </table> ```HTML
1<?php 2ini_set('display_errors', 1); 3error_reporting(E_ALL); 4 5//データベースのインスタンス名を指定 6$serverName = ".\\SQLEXPRESS"; 7//接続情報を指定 8$connectionInfo = array("UID" => "test", 9 "PWD" => "test", 10 "Database" => "hattyuujisseki"); 11 12//コネクションを確立 13$conn = sqlsrv_connect($serverName, $connectionInfo) 14 or die(print_r(sqlsrv_errors(), true)); 15//dpt引き渡し 16//クエリー文を指定 17$tsql = "SELECT * from 大分類マスタ"; 18//クエリーを実行 19$result = sqlsrv_query($conn, $tsql); 20?> 21<html> 22 <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=x-sjis"> 23 <head> 24 <title>発注実績</title> 25 </head> 26 <body> 27 <form action="" method="POST"> 28 <select name="dpt" > 29 <?php while ($row = sqlsrv_fetch_array($result)) : ?> 30 <?php if ($row['大分類コード'] == filter_input(INPUT_POST, 'dpt')): ?> 31 <option value="<?= $row['大分類コード'] ?>" selected="selected"> 32 <?= $row['大分類コード']; ?> <?= $row['大分類名_漢字'] ?> 33 </option> 34 <?php else : ?> 35 <option value="<?= $row['大分類コード']; ?>"> 36 <?= $row['大分類コード'] ?> <?= $row['大分類名_漢字'] ?> 37 </option> 38 <?php endif; ?> 39 <?php endwhile; ?> 40 41 </select> 42 <input type="submit" name="s" value="検 索" /> 43 </form> 44 <b>発注実績  </b> 45 <table> 46 <thead> 47 <tr> 48 <th>中分類</th> 49 <th>取引先</th> 50 <th>週</th> 51 <th>発注数</th> 52 <th>発注原価</th> 53 <th>発注売価</th> 54 </tr> 55 </thead> 56 <tbody> 57 58 </tbody> 59 </table> 60 <script type="text/javascript" src="//code.jquery.com/jquery-2.2.4.min.js" charset="Shift-JIS"></script> 61 <script type="text/javascript" charset="Shift-JIS"> 62 // ここにJavaScript のコードを書く 63 $(function () { 64 var parent = $(".ajax-dpt"); 65 var child = $(".ajax-lin"); 66 parent.on("change", function () { 67 var selecteddptCode = $(this).val(); 68 var param = { 69 dpt: selecteddptCode 70 }; 71 child.html('<option value="-1">-- 中分類選択 --</option>'); 72 var defaultlinCode = ("" != child.attr("default")) ? child.attr("default") : -1; 73 74 if (-1 != selecteddptCode) { 75 $.getJSON("/ajax/getlin.php", param, function (json) { 76 $.each(json, function (i) { 77 child.append( 78 '<option value="' + json[i].code + '">' + 79 json[i].name + '</option>'); 80 }); 81 child.val(defaultlinCode); 82 }); 83 } 84 }).change(); 85 }); 86 // 発注実績 の検索は、ajaxで読み込むファイルで検索し、このファイル上では検索しない 87 </script> 88 </body> 89</html> 90<?php 91//クエリー結果の開放 92sqlsrv_free_stmt($result); 93//コネクションのクローズ 94sqlsrv_close($conn); 95?> 96 97```php 98
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/11 12:57
2016/11/13 04:45
退会済みユーザー
2016/11/13 05:47
2016/11/13 07:32
退会済みユーザー
2016/11/13 07:38
2016/11/15 00:26
退会済みユーザー
2016/11/15 04:37 編集
2016/11/15 05:06
退会済みユーザー
2016/11/15 05:18 編集
2016/11/15 05:22
退会済みユーザー
2016/11/15 05:30
2016/11/15 05:40
退会済みユーザー
2016/11/15 05:42
2016/11/15 05:51
退会済みユーザー
2016/11/16 14:19 編集
2016/11/15 07:41
2016/11/19 05:21
退会済みユーザー
2016/11/19 11:19 編集
2016/11/25 02:40