回答編集履歴

4

追記

2019/02/22 14:12

投稿

cerfweb
cerfweb

スコア1899

test CHANGED
@@ -18,6 +18,8 @@
18
18
 
19
19
  とすれば大丈夫でしょう。
20
20
 
21
+ ただし、JavaScriptのPOSTで値を送信してもこの部分は変わりません。従って必要のない部分とも言えます。
22
+
21
23
 
22
24
 
23
25
  2番目の問題は、dataで受け取っているのが同じhtmlなので
@@ -31,3 +33,5 @@
31
33
  の部分に同じ内容がコピーされたように入ってしまうことです。
32
34
 
33
35
  尚、同一html上に同じidがあるとJavaScriptが動かなくなってしまうので、2回目の送信以降は何も起こりません。
36
+
37
+ 解決するにはフォームの送信先を別ファイルにして、そこでバリデーション等の処理を行った上で値を書き出し、それをtest.phpで受け取って任意の箇所に表示するというのが一般的でしょう。

3

修正

2019/02/22 14:12

投稿

cerfweb
cerfweb

スコア1899

test CHANGED
@@ -1,6 +1,6 @@
1
1
  おそらく提示されているコードがtest.phpだと思い、そこから考えられることを以下に記します。
2
2
 
3
- まず、最初の画面でのエラーメッセージはPOST送信される前なのでが未定義なためだと思われます。
3
+ まず、最初の画面でのエラーメッセージはPOST送信される前なのでインデックスが未定義なためだと思われます。
4
4
 
5
5
  ```php
6
6
 

2

修正

2019/02/22 13:33

投稿

cerfweb
cerfweb

スコア1899

test CHANGED
@@ -1,17 +1,33 @@
1
+ おそらく提示されているコードがtest.phpだと思い、そこから考えられることを以下に記します。
2
+
3
+ まず、最初の画面でのエラーメッセージはPOST送信される前なので値が未定義なためだと思われます。
4
+
5
+ ```php
6
+
7
+ if (isset($_POST['name'])
8
+
9
+ {
10
+
11
+ // 本来はechoの前にここでバリデーションなどの処理が必要
12
+
13
+ echo $_POST['name'];
14
+
15
+ }
16
+
17
+ ```
18
+
1
- りあえずこの部分
19
+ すれば大丈夫でしょう。
20
+
21
+
22
+
23
+ 2番目の問題は、dataで受け取っているのが同じhtmlなので
2
24
 
3
25
  ```html
4
26
 
5
- <input type="text" id="name" value="">
27
+ <p id="result"></p>
6
28
 
7
29
  ```
8
30
 
9
-
31
+ の部分に同じ内容がコピーされたように入ってしまうことです。
10
32
 
11
- ```html
12
-
13
- <input type="text" id="name" name="name" value="">
33
+ 尚、同一html上に同じidがあるとJavaScriptが動かなくなってしまうので、2回目の送信以降は何も起こりません。
14
-
15
- ```
16
-
17
- としないとインデックスが未定義になってしまいます。

1

修正

2019/02/22 13:31

投稿

cerfweb
cerfweb

スコア1899

test CHANGED
@@ -14,4 +14,4 @@
14
14
 
15
15
  ```
16
16
 
17
- としないと引数が未定義になってしまいます。
17
+ としないとインデックスが未定義になってしまいます。