Jobchange_pls
@Jobchange_pls (A B)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

DBとPHPを連携させてHTMLで表示する

解決したいこと

htmlでフォーム送信したデータをPHPで受け取ってDBに入れてそれをもとのHTMLで表示させようとしているわけです。しかしどうやってHTMLで表示させればいいのかと。そこです。
index.htmlで入力。

name.phpで受け取ってDBに入れる。

index.htmlで表示

該当するソースコード

まだ勉強中なんでわからないことが多くて、たぶんどこか間違えてます。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="style.css">
  <title>User</title>
</head>
<body>
  <form method="POST" action="name.php">
    User Name : <input type="text" name="username">
    <input type="submit">
  </form>

  <li>
    <!-- ここに表示させたい -->
  </li>
</body>
</html>
<?php
$name = $_POST['username'];
$pdo = new PDO(
  'mysql:dbname=username; host:localhost;',
  'root',
  ''
);

if (!isset($name)) {
  echo 'ユーザーネームが入力されていません。';
  exit;
}

$pdo -> query('
  USE `username`;
  DROP TABLE IF EXISTS name;
  CREATE TABLE name(id INTEGER AUTO_INCREMENT PRIMARY KEY, user VARCHAR(20));
  INSERT INTO name(id, user);
  UPDATE name SET user = '. $name .';
');

header('Location: index.html');

自分で試したこと

いったん共通のJS経由させてみようと思ったんですが、なんかうまくいきませんでした。

0

1Answer

まずPHPのデータをHTMLに表示させるための基本はこんな感じです。

index.php
<?php
$var = 'テスト';
?>
<html>
<head></head>
<body>
<?php echo $var; ?><!-- テスト -->
</body>
</html>

やりたいことをもっとも単純にやるなら、こういった形になります。

index.php
<?php
$name = '';

// HTTPメソッドでformからの送信を判断する
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // formデータの処理
    $name = $_POST['username'];

    // DBからデータを取得
}
?>
<html>
<head></head>
<body>
<!-- 同じファイル(index.php)に送信する -->
<form method="POST" action="index.php">
    User Name : <input type="text" name="username">
    <input type="submit">
</form>

<?php echo $name; ?>

<!-- データを表示する -->
</body>
</html>

やりたいことを細かく分けていって、ひとつひとつ解決していくと良いと思います。

1Like

Your answer might help someone💌