質問するログイン新規登録

質問編集履歴

2

ソースの追加

2018/12/11 01:17

投稿

ms5025
ms5025

スコア292

title CHANGED
File without changes
body CHANGED
@@ -113,4 +113,48 @@
113
113
  {/if}
114
114
  </section >
115
115
 
116
+ ```
117
+
118
+ 追記★
119
+ 上記tplではclass名を削除してありますが、
120
+ sectionのclassをhogeMenuとしてあります。
121
+ cssで'selected'classに対してshow状態を設定してあります。
122
+ 初回1ページ目のsection以外は'selected'のclassがないためhide状態です。
123
+ 下記は必要部分だけ抜き出してありますが
124
+ これに最大ページ数の制御などが追加されています。
125
+
126
+ ```css
127
+
128
+ /*pager*/
129
+ .hogeMenu { display: none; }
130
+ .hogeMenu.selected { display: block; }
131
+ ```
132
+
133
+
134
+ ```js
135
+ // 改ページ制御
136
+ $(document).on('click', '.改ページclass', function () {
137
+
138
+ var current = parseInt($('.hogeMenu.selected').index('.hogeMenu'));
139
+ if ($(this).is('.prev') && current !== 0) {
140
+ current = current - 1;
141
+ $('.hogeMenu').removeClass('selected').eq(current).addClass('selected');
142
+ $('body,html').animate({scrollTop: 0}, 0);
143
+ } else if ($(this).is('.next')) {
144
+ current = current + 1;
145
+ $('.hogeMenu').removeClass('selected').eq(current).addClass('selected');
146
+ $('body,html').animate({scrollTop: 0}, 0);
147
+ }
148
+ current = current + 1;
149
+
150
+ // ページボタン制御
151
+ $('.prev').show();
152
+ $('.next').show();
153
+ if (current == 1)
154
+ {
155
+ $('.prev').hide();
156
+ }
157
+
158
+ });
159
+
116
160
  ```

1

コード追加

2018/12/11 01:17

投稿

ms5025
ms5025

スコア292

title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,99 @@
18
18
 
19
19
  描画速度を上げるためにできることはあるでしょうか?
20
20
  また、そもそもこのようなデータ量の場合非同期通信でデータを取得すること自体が誤りなのでしょうか?
21
- (改ページや項目選択でsubmitさせないでほしいという要件があったためこうなりました)
21
+ (改ページや項目選択でsubmitさせないでほしいという要件があったためこうなりました)
22
+
23
+
24
+ ```php
25
+
26
+ class HagehageController extends AbstractActionController {
27
+
28
+ /**
29
+ * @return View 情報取得
30
+ */
31
+ public function hogehogeAction() {
32
+
33
+ // 共通処理
34
+ require_once('共通処理.php');
35
+
36
+ // 情報取得
37
+ $results['itemList'] = LibsHoge::getSearchItem($params['paramCD1'], $params['paramCD2'], $$params['searchText']);
38
+
39
+ // smartyのview表示
40
+ Smarty::render($params, $results);
41
+
42
+ }
43
+
44
+ }
45
+
46
+ 共通処理.php内で$paramsにポストデータをセットしていたり
47
+ Actionに対応するtplや表示に必要な物が共通処理として$resultsにセットしてあります。(フレームワークはzendを使用)
48
+ ```
49
+
50
+ ```js
51
+
52
+ // 〇〇コード
53
+ var paramCD1 = $('#paramCD1').val();
54
+ // 〇〇コード
55
+ var paramCD2 = $('#paramCD2').val();
56
+ // キーワード
57
+ var searchText = $('#searchText').val();
58
+
59
+
60
+ $.ajax({
61
+ type: 'GET',
62
+ url: "hogehoge",
63
+ dataType: 'html',
64
+ data: {"paramCD1": paramCD1, "paramCD2": paramCD2, "searchText": searchText}
65
+ }).done(function (html) {
66
+ var $list = $(".itemList");
67
+ // リスト内クリア
68
+ $list.empty();
69
+ // レスポンス結果アペンド
70
+ $list.append(html);
71
+
72
+ }).fail(function(jqXHR, textStatus, errorThrown) {
73
+ //エラー処理
74
+ });
75
+ ```
76
+
77
+ ```js
78
+
79
+ <section class="">
80
+ <div>
81
+ <assid >
82
+ <h4>
83
+   <span id="prev" data-action="prev"><<前回</span>
84
+ <span id="next" data-action="next">次回>></span>
85
+ </h4>
86
+ </assid>
87
+ </div>
88
+ <section >
89
+ {foreach from=$results.itemList key=key item=items}
90
+ <li class="">
91
+ <section class="">
92
+ <!-- 商品画像 -->
93
+ <figure">
94
+ <img src="{$items.商品画像}"/>
95
+ </figure>
96
+ <dl class="itemInfo">
97
+ <dt>
98
+ 品番:{$items.品番}
99
+ </dt>
100
+ <dt class="">
101
+ {$items.商品名}
102
+ </dt>
103
+ <dt class="">
104
+ {$items.価格}
105
+ </dt>
106
+ <!-- 以下商品の情報続く・・・ -->
107
+ </dl>
108
+ </section>
109
+ </li>
110
+ <!-- 最大商品数ごとにセクション区切り -->
111
+ {if (($key+1)%{$smarty.const.1ページ最大商品数} ==0)}</section><section>{/if}
112
+ {/foreach}
113
+ {/if}
114
+ </section >
115
+
116
+ ```