回答編集履歴
4
追記
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
修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
おそらく提示されているコードがtest.phpだと思い、そこから考えられることを以下に記します。
|
2
2
|
|
3
|
-
まず、最初の画面でのエラーメッセージはPOST送信される前なので
|
3
|
+
まず、最初の画面でのエラーメッセージはPOST送信される前なのでインデックスが未定義なためだと思われます。
|
4
4
|
|
5
5
|
```php
|
6
6
|
|
2
修正
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
|
-
<
|
27
|
+
<p id="result"></p>
|
6
28
|
|
7
29
|
```
|
8
30
|
|
9
|
-
|
31
|
+
の部分に同じ内容がコピーされたように入ってしまうことです。
|
10
32
|
|
11
|
-
```html
|
12
|
-
|
13
|
-
|
33
|
+
尚、同一html上に同じidがあるとJavaScriptが動かなくなってしまうので、2回目の送信以降は何も起こりません。
|
14
|
-
|
15
|
-
```
|
16
|
-
|
17
|
-
としないとインデックスが未定義になってしまいます。
|
1
修正
test
CHANGED
@@ -14,4 +14,4 @@
|
|
14
14
|
|
15
15
|
```
|
16
16
|
|
17
|
-
としないと
|
17
|
+
としないとインデックスが未定義になってしまいます。
|