0

私はこの機能を持っています。その目的は投稿を更新することです。データベースからデータを取得して<form>タグ間に表示する別の関数があり、アクションは次を含む update.php ファイルに送信されます。

<?php
include_once("functions.php");

$obj = new data_handler; 
$obj->update_post($_GET['id']);
?>

次に、これが実行されます。

public function update_post($id) {  
  try {
    $sql = $this->con->prepare("UPDATE Content SET Title=?, Body=? WHERE id=?");
    $sql->bindParam(1, $_POST['title']);
    $sql->bindParam(2, $_POST['body']);
    $sql->bindParam(3, $id);
    $sql->execute();
  } catch (PDOException $e) {
    echo $e->getMessage();
  }
  header("Location: index.php");
}

これは、編集するコンテンツをプルする関数です。

public function display_selected ($id) {
    $sql = $this->con->query("SELECT * FROM Content WHERE id= '$id'");
    while ($row = $sql->fetch()) {
        echo $row['Body'];
    }
}

これは次の形式です。

    <form action="update.php" method="post">
        <input type="text" size="105" name="title"></input>
        <textarea name="body"><?php $obj = new data_handler; $obj->display_selected($_GET['id']); ?></textarea>
        <input type="submit" value="Update"/>
    </form>

エラー/例外/警告は表示されず、プロセス全体を実行できますが、何も変わりません。

4

1 に答える 1

2

オプション1

変化する

$obj->update_post($_GET['id']);

$obj->update_post($_POST['id']);

これをフォームに追加します

<input type="hidden" name="id" value="<?=$_GET['id']?>">

注目に値するのは、入力タグは自己閉鎖型であるため、最後に必要はないということです。

オプション2

変化する

<form action="update.php" method="post">

<form action="update.php?id=<?=$_GET['id']?>" method="post">
于 2013-01-17T11:02:55.293 に答える