【问题标题】:PHP: Passing row values into form to editPHP:将行值传递到表单中进行编辑
【发布时间】:2018-03-31 23:05:53
【问题描述】:

我有一个从 dbs 表行值派生的表,每行还对应一个编辑按钮。单击编辑按钮后,用户将进入特定表格行的编辑表单,在我的情况下为事件。这工作正常,用户登陆 editevents.php 页面,但我没有获取数据来填充表单。

if(isset($_POST['edit'])){
        $eventid = $_POST['eventid'];
        echo $eventid; *//echoing the eventid works fine so the parameter obvioulsy has been*
> passed through correctly via POST from the entry page*

        $stmt = $event->runQuery("SELECT event_name, event_description, event_category, event_date, event_venue, event_location FROM events WHERE event_id=:$eventid");
        $row=$stmt->fetch(PDO::FETCH_ASSOC);

形式:

    <div id="updateevent">
    <form action="" method="POST">
        <label>Event title: </label>
        <input type="text" name="eventname" value="<?php echo $row["event_name"]; ?>"/><br /><br />
        <label>Description: </label>
        <input type="text" name="eventdescription" required="required" value="<?php echo $row['event_description']; ?>"/><br /><br />
        <label>Category: </label>
        <input type="text" name="eventcategory" required="required" value="<?php echo $row['event_category']; ?>"/><br /><br />
        <label>Venue: </label>
        <input type="text" name="eventvenue" required="required" value="<?php echo $row['$event_venue']; ?>"/><br /><br />
        <label>Event date: </label>
        <input type="date" name="eventdate" required="required" value="<?php echo $row['event_date']; ?>"/><br /><br />
        <label>Event location: </label>
        <input type="text" name="eventlocation" required="required" value="<?php echo $row['$event_location']; ?>"/><br /><br />
        <input type="submit" class="button" name="update" value="Update"
    </form>
    </div>

我没有收到错误消息并认为很可能存在语法问题,因为我是一个绝对的初学者,有人可以提供建议吗?

更新

感谢@Mike,我宁愿在 php 的页面上玩弄这个,看看它是如何工作的。我有这个干净的代码,它旨在成为类事件文件中外包的实际功能:

public function displayevent($event_name,$event_description,$event_category,$event_date,$event_venue,$event_location)
{
   try
   {

       $stmt = $this->conn->prepare("SELECT event_name, event_description,  event_category, event_venue, event_location FROM events WHERE   event_id=$eventid"); 

       $stmt->bindparam('event_id'->$event_id);

       $stmt->execute(); 

       return $stmt; 
   }
   catch(PDOException $e)
   {
       echo $e->getMessage();
   }    
}

如何在页面上调用它?

【问题讨论】:

  • &lt;input type="submit" class="button" name="update" value="Update" 一方面,这是一个错字。

标签: php pdo


【解决方案1】:

您将命名参数与变量混合在一起。您也没有将变量绑定到查询。由于您没有使用原始 PDO,因此它显然会有所不同,但如果您使用的话,您会这样做。您只需将其调整为您的 $event 对象:

$stmt = $dbh->prepare(
    "SELECT 
        event_name, 
        event_description, 
        event_category, 
        event_date,
        event_venue, 
        event_location 
    FROM 
        events 
    WHERE
        event_id=:eventid"
);
$stmt->execute(['eventid' => $eventid]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

注意:也建议将长线剪短。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多