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

質問編集履歴

3

textareaのコードを追加しました。

2019/02/06 13:31

投稿

art_porokyu
art_porokyu

スコア44

title CHANGED
File without changes
body CHANGED
@@ -104,4 +104,18 @@
104
104
  ```
105
105
 
106
106
  document.write('<p class="message-user"><?php echo mb_substr($myMessage['message'],0,20); ?><a href="message-view.php?message_id=<?php echo $myMessage['message_id'];?>&kind=<?php echo
107
- がtext型の部分です。
107
+ がtext型の部分です。
108
+
109
+ textareaのコードです。
110
+ ```html
111
+ <label>
112
+ <p>件名</p>
113
+ <textarea class="text text1" type="text" name="subject" placeholder="件名" value=""></textarea>
114
+ </label>
115
+ <label>
116
+ <p>内容</p>
117
+ <textarea class="text text2" type="text" name="message" placeholder="内容" value=""></textarea>
118
+ </label>
119
+
120
+ <input id="button" class="btn-button submit" name="post" type="submit" value="Happy">
121
+ ```

2

コードを追加しました。

2019/02/06 13:31

投稿

art_porokyu
art_porokyu

スコア44

title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,90 @@
18
18
 
19
19
  text型は半角スペースが入ってると非表示にするような制約があるのでしょうか?
20
20
 
21
- 入力の際の改行をDBに保存し、ブラウザで表示させるにはどのようにすればいいでしょうか?
21
+ 入力の際の改行をDBに保存し、ブラウザで表示させるにはどのようにすればいいでしょうか?
22
+
23
+ INSERT時のコード
24
+ ```php
25
+
26
+ if(!empty($_POST)){
27
+ debug('POST送信があります。');
28
+
29
+ // 変数に投稿内容を代入
30
+ $kind = $_POST['post'];
31
+ $subject = $_POST['subject'];
32
+ $message = $_POST['message'];
33
+ // 例外処理
34
+ try {
35
+ $dbh = dbConnect();
36
+ debug('DBに接続します。');
37
+ // SQL文作成
38
+ $sql = 'INSERT INTO messages (user_id,kind,subject,message,created_date) VALUES(:user_id,:kind,:subject,:message,:created_date)';
39
+ $data = array(':user_id' => $_SESSION['user_id'],
40
+ ':kind' => $kind,
41
+ ':subject' => $subject,
42
+ ':message' => $message,
43
+ ':created_date' => date('Y-m-d H:i:s'));
44
+ // クエリ実行
45
+ // var_dump($data);
46
+ $stmt = queryPost($dbh, $sql, $data);
47
+ header("Location:mypage.php");
48
+
49
+ } catch (PDOException $e) {
50
+ echo 'DB接続エラー:' . $e->getMessage();
51
+ }
52
+ }
53
+ コード
54
+ ```
55
+
56
+ 取り出し時のコード
57
+ ```php
58
+ $myMessages = getMyMessage($_SESSION['user_id'],$start);
59
+
60
+ function getMyMessage($user_id,$start){
61
+ debug('ユーザー情報を取得します。');
62
+ //例外処理
63
+ try {
64
+ //DBへ接続
65
+ $dbh = dbConnect();
66
+ // SQL文作成
67
+ $sql = $dbh->prepare('SELECT * FROM messages WHERE user_id = :user_id AND kind != "Comment" ORDER BY created_date DESC LIMIT :start,6');
68
+ $sql->bindParam(':user_id', $user_id);
69
+ $sql->bindParam(':start', $start, PDO::PARAM_INT);
70
+ // クエリ実行
71
+ $sql->execute();
72
+ // クエリ結果のデータを1レコード返却
73
+ if($sql){
74
+ return $sql->fetchAll(PDO::FETCH_ASSOC);
75
+ } else {
76
+ return false;
77
+ }
78
+ } catch (Exception $e) {
79
+ error_log('エラー発生:' . $e->getMessage());
80
+ }
81
+ }
82
+
83
+ コード
84
+ ```
85
+
86
+ ブラウザで表示させるときのコード
87
+ ```php
88
+ <?php foreach ($myMessages as $myMessage) { ?>
89
+ <div class="my-message-view">
90
+ <p class="kind-user">種類:<?php echo $myMessage['kind']; ?></p>
91
+ <p class="subject-user">題名:<?php echo $myMessage['subject']; ?></p>
92
+ <script>
93
+ var windowSize = $(window).width();
94
+ var num1 = 480;
95
+ if (windowSize > num1) {
96
+ document.write('<p class="message-user"><?php echo mb_substr($myMessage['message'],0,50); ?><a href="message-view.php?message_id=<?php echo $myMessage['message_id'];?>&kind=<?php echo $myMessage['kind'];?>">…続きを読む</a></p>');
97
+ } else {
98
+ document.write('<p class="message-user"><?php echo mb_substr($myMessage['message'],0,20); ?><a href="message-view.php?message_id=<?php echo $myMessage['message_id'];?>&kind=<?php echo $myMessage['kind'];?>">…詳細</a></p>');
99
+ }
100
+ </script>
101
+ <p><?php echo $myMessage['created_date']; ?></p>
102
+ </div>
103
+ <?php } ?>
104
+ ```
105
+
106
+ document.write('<p class="message-user"><?php echo mb_substr($myMessage['message'],0,20); ?><a href="message-view.php?message_id=<?php echo $myMessage['message_id'];?>&kind=<?php echo
107
+ がtext型の部分です。

1

問題箇所の画像を載せました。

2019/02/06 13:25

投稿

art_porokyu
art_porokyu

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,17 @@
1
- 今webサービスを作成しているのですが、<textarea>内で入力した改行した文字列を,DBのtext型にINSERTすると、改行されて挿入されるのですが、SELECTで取得しブラウザで表示させようしても、文字列すら表示されません。
1
+ 今webサービスを作成しているのですが、<textarea>内で入力した改行ありの文字列をDBのtext型にINSERTすると、改行されて挿入されるのですが、SELECTで取得しブラウザで表示させと、文字列すら表示されません。
2
2
 
3
+ DBで保存されている中身です。
3
- 確認のためvar_dumpで表示ると、改行の代わりに半角スペースとなって表示されます。
4
+ 改行れてい「やっ会えた!嬉しい」となってる箇所が問題となっている部分です。
4
5
 
6
+ ![![やっと会えた!嬉しい](b8cee79d8d6396e3b5b31c5c78d905ab.png)](9941872b5552080b98c3b38697eced6e.png)
7
+
8
+
9
+
10
+ 確認のためvar_dumpで表示させると、改行の代わりに半角スペースとなって表示されます。
11
+ ![イメージ説明](044962b0127bdbc1e9ae34307b0c827a.png)
12
+
13
+
14
+
5
15
  これは一体何がおきているのでしょうか?
6
16
 
7
17
  INSEARTされる前にnl2brも試したのですが、DB内で改行が<br />となって挿入され、同じようにブラウザでは表示されませんでした。