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

回答編集履歴

4

追記

2019/02/22 14:12

投稿

cerfweb
cerfweb

スコア1907

answer CHANGED
@@ -8,10 +8,12 @@
8
8
  }
9
9
  ```
10
10
  とすれば大丈夫でしょう。
11
+ ただし、JavaScriptのPOSTで値を送信してもこの部分は変わりません。従って必要のない部分とも言えます。
11
12
 
12
13
  2番目の問題は、dataで受け取っているのが同じhtmlなので
13
14
  ```html
14
15
  <p id="result"></p>
15
16
  ```
16
17
  の部分に同じ内容がコピーされたように入ってしまうことです。
17
- 尚、同一html上に同じidがあるとJavaScriptが動かなくなってしまうので、2回目の送信以降は何も起こりません。
18
+ 尚、同一html上に同じidがあるとJavaScriptが動かなくなってしまうので、2回目の送信以降は何も起こりません。
19
+ 解決するにはフォームの送信先を別ファイルにして、そこでバリデーション等の処理を行った上で値を書き出し、それをtest.phpで受け取って任意の箇所に表示するというのが一般的でしょう。

3

修正

2019/02/22 14:12

投稿

cerfweb
cerfweb

スコア1907

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

2

修正

2019/02/22 13:33

投稿

cerfweb
cerfweb

スコア1907

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

1

修正

2019/02/22 13:31

投稿

cerfweb
cerfweb

スコア1907

answer CHANGED
@@ -6,4 +6,4 @@
6
6
  ```html
7
7
  <input type="text" id="name" name="name" value="">
8
8
  ```
9
- としないと引数が未定義になってしまいます。
9
+ としないとインデックスが未定義になってしまいます。