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

回答編集履歴

4

修正

2019/09/10 01:33

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  できればデバッグまでできたほうがいいのでIDEに乗り換えるべき。
4
4
  もしプラグインなどを入れるものであれば一通り取り入れるべき。
5
5
 
6
- 下記はIDEあるEclipseの例。
6
+ 下記はIDEあるEclipseの例。
7
7
 
8
8
  ![イメージ説明](0c9f7555f8e7cad07081e41a73b7bc8c.png)
9
9
 

3

修正

2019/09/10 01:33

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -94,7 +94,7 @@
94
94
  ※コードフォーマットをかけてコメントを書き直しただけです。
95
95
  ```php
96
96
  <?php
97
- //入力内容取得のための設定配列
97
+ //入力内容取得・入力コントロールHTML生成のための設定配列
98
98
  $list = array(
99
99
  array(
100
100
  'to'=>'46.txt',

2

修正

2019/09/10 00:48

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -77,6 +77,7 @@
77
77
  ```
78
78
 
79
79
  あと、各所で書かれているコメントがほぼ意味を成していません。
80
+ 「これ」とか「あれ」とかでは後から読んだ際に理解できません。
80
81
  無駄なコメント・冗長なコメント・コードと合っていないものも見受けられます。
81
82
  コードが長くなればそれだけ読むのがしんどくなります。
82
83
  コメントは的確に、端的に、ダラダラと書かないようにしましょう。
@@ -87,41 +88,79 @@
87
88
  - [エラーメッセージの読み方と対処, 検索や質問の原則](https://qiita.com/cannorin/items/eb062aae88bfe2ad6fe5)
88
89
 
89
90
  ---------------------
90
- 軽くヒント:
91
+ 軽くヒント:コメントの書き方
91
92
 
92
- 下記冗長記述と思す。
93
+ 要件分からないが、例として
94
+ ※コードフォーマットをかけてコメントを書き直しただけです。
93
95
  ```php
96
+ <?php
97
+ //入力内容取得のための設定配列
98
+ $list = array(
99
+ array(
100
+ 'to'=>'46.txt',
101
+ 'from'=>'23.txt',
94
- if (($value === NULL) or ($value === FALSE)) {
102
+ 'name'=>'inp_01',
103
+ 'disp'=>'クーピー',
104
+ 'qty'=>0
105
+ ),
106
+ );
95
107
 
108
+ //フィルターOKのもののみ保管する配列
96
- ```
109
+ $values = array();
110
+ foreach($list as $key=>$item) {
111
+ $options=array('options'=>array('min_range'=>0, 'max_range'=>9));
97
112
 
98
- ```php
99
- $a = NULL;
100
- $b = false;
113
+ // POST値を整数型 最小0,最大9でチェック
114
+ $value = filter_input(INPUT_POST, $item['name'], FILTER_VALIDATE_INT, $options);
101
115
 
102
- var_dump(!($a));
103
- var_dump(!($b));
104
- /**
116
+ //フィルターNGの場合は次へ
117
+ if (($value === NULL) or ($value === FALSE)) {
105
- bool(true)
118
+ continue;
106
- bool(true)
119
+ }
120
+ }
107
- **/
121
+ //フィルターOKのもののみ保管
108
- ```
122
+ $values[$key] = $value;
109
123
 
124
+ $field = '';
125
+ foreach ($list as $key=>$item) {
126
+ //空行のためスキップ
127
+ if ($item['qty'] == 0) {
110
- つまりこれだけでいい
128
+ continue;
129
+ }
130
+
131
+ //各入力コントロールのHTML
132
+ $field .= <<<HTML
133
+ <div class="field">
134
+ <div class="item">
135
+ <span class="name">{$item['disp']}</span>:<span class="number">{$item['qty']}</span>
136
+ </div>
137
+ <div class="inputField">
138
+ <input type="text" name="{$item['name']}" value="{$values[$key]}">
139
+ </div>
111
- ```php
140
+ HTML;
141
+
142
+ //メインHTML
143
+ ?>
144
+ <!DOCTYPE html>
145
+ <html lang="ja">
112
- if (!$value) {
146
+ <head>
147
+ <meta charset="UTF-8">
148
+ <title>必要な物を</title>
149
+ </head>
150
+ <body>
151
+ <?= count($msg) > 0 ? implode('', $msg) . "備品のナンバーを書き込みました。 <hr>"
152
+ '' ?>
153
+ <?=$msg;?>
154
+ <div class="form">
155
+ <form action="number.php" method="post">
156
+ <?=$filed:?>
157
+ <input type="submit" name="btnSubmit" value="送信">
158
+ </form>
159
+ </div>
160
+ </body>
161
+ </html>
113
162
  ```
114
- > [PHPマニュアル:論理型](https://www.php.net/manual/ja/language.types.boolean.php)
115
- boolean に変換する場合、次の値は FALSE とみなされます。
116
- **boolean の FALSE**
117
- integer の 0 (ゼロ)
118
- float の 0.0 (ゼロ)
119
- 空の文字列、 および文字列の "0"
120
- 要素の数がゼロである 配列
121
- **特別な値 NULL (値がセットされていない変数を含む)**
122
- 空のタグから作成された SimpleXML オブジェクト
123
163
 
164
+ 明らかに次のSyntaxが出そうなコードですけどそこまでやってたらキリがないので、
124
- continueまで含めと短書ける
165
+ あとはがんばっださい。
125
- ```php
126
- if(!$v) continue;
166
+ エラー読めるようになったらとりあえず初心者から少しだけ進みます。
127
- ```

1

修正

2019/09/10 00:46

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -86,7 +86,7 @@
86
86
  - [PHP初心者は最低限これはやっとけ - 開発に入る前編](https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5)
87
87
  - [エラーメッセージの読み方と対処, 検索や質問の原則](https://qiita.com/cannorin/items/eb062aae88bfe2ad6fe5)
88
88
 
89
-
89
+ ---------------------
90
90
  軽くヒント:
91
91
 
92
92
  下記は冗長な記述と思います。