ご覧いただきありがとうございます。
プログラミング初心者で勉強のため、簡易的な掲示板を作成しているのですが、
Formに打ち込んだ際にページをリロードしないと、打ち込んだ内容が画面に反映されません。
解決方法などはありますでしょうか?
PHP
1ファイル名[talk.php] 2スレッドのidでpostのデータを引っ張ってきています。 3<?php 4require_once(__DIR__ . '/config.php'); 5require_once(__DIR__ . '/Controll.php'); 6 7 8$user = new \MyApp\Controll(); 9 10$sledid = $_POST["id"]; //sledのid 11 12$posts = $user->getPosts(); 13 14if ($_SERVER['REQUEST_METHOD'] === 'POST') { 15 if(!empty($_POST['body'])){ 16 $user->post(); 17 header('location:talk.php'); 18exit(); 19} 20} 21 22?> 23<!DOCTYPE html> 24<html lang="ja"> 25 <head> 26 <meta charset="utf-8"> 27 <title>KENJA</title> 28 </head> 29 <body> 30 <?php print_r($sledid); ?> 31 <div class="container"> 32 <div class="watch"> 33 <ul> 34 <?php foreach($posts as $post => $values): ?> 35 <?php if($post==$sledid): ?> 36 <?php foreach($values as $value) :?> 37 <li>名前:<?= h($value['name']);?> 本文:<?= h($value['body']); ?></li> 38 <?php endforeach; ?> 39 <?php endif; ?> 40 <?php endforeach; ?> 41 </ul> 42 </div> 43 <div class="write"> 44 <form action="" method="post"> 45 <input type="hidden" name="id" value="<?= $sledid;?>"> 46 <p>名前<input type="text" name="username" value=""></p> 47 <p>本文<input type="text" name="body" value=""></p> 48 <input type="submit" name="" value="挿入"> 49 </form> 50 </div> 51 </div> 52 </body> 53</html> 54
php
1<?php 2ファイル名[Controll.php] 3 4namespace MyApp; 5 6class Controll{ 7 public $_db; 8 public function __construct(){ 9 // データベースアクセス 10 $this->_db = new \PDO(DSN,DB_USERNAME,DB_PASSWORD); 11 } 12 13 public function getData(){ 14 $sql = 15 "select 16 categories.ctgname, 17 tags.id, 18 tags.tag_id, 19 tags.tag_name 20 from 21 categories INNER JOIN tags ON tags.tag_id = categories.id"; 22 $stmt = $this->_db->query($sql); 23 $datas = $stmt->fetchAll(\PDO::FETCH_GROUP); 24 return $datas; 25 } 26 27 public function getSleds(){ 28 $sql = 29 "select 30 sleds.id, 31 sleds.sled_id, 32 sleds.sled_name 33 from tags INNER JOIN sleds ON sleds.sled_id = tags.id"; 34 35 $stmt = $this->_db->query($sql); 36 $sleds = $stmt->fetchAll(\PDO::FETCH_GROUP); 37 return $sleds; 38 } 39 40 public function getPosts(){ 41 $sql = 42 "select 43 posts.post_id, 44 posts.name, 45 posts.body 46 from sleds INNER JOIN posts ON posts.post_id = sleds.id"; 47 48 $stmt = $this->_db->query($sql); 49 $posts = $stmt->fetchAll(\PDO::FETCH_GROUP); 50 return $posts; 51 } 52 53 public function post(){ 54 $sql = "insert into posts (post_id,name,body) values (:post_id,:name,:body)"; 55 $stmt = $this->_db->prepare($sql); 56 $stmt->bindParam(':post_id',$_POST['id']); 57 $stmt->bindParam(':name',$_POST['username']); 58 $stmt->bindParam(':body',$_POST['body']); 59 $stmt->execute(); 60} 61 62 63 64 65 66 67 68}
回答4件
あなたの回答
tips
プレビュー