当用户点击submit按钮时,index.php不会捕获操作并更新数据库
这里有3个文件,index.php、authors.html.php和form.html.php,index.php是我的控制器脚本,当用户想要在MySQL数据库中编辑作者或添加作者时,它会调用authors.html.php来显示作者,最后是form.html.php 我遇到的问题是,当用户点击更新按钮时,数据库无法更新作者详细信息。。。我的控制器脚本似乎没有捕获“editform”操作?我不完全清楚它为什么会下滑。以下是这些文件的摘录: index.php(控制器):当用户点击submit按钮时,index.php不会捕获操作并更新数据库,php,mysql,html,Php,Mysql,Html,这里有3个文件,index.php、authors.html.php和form.html.php,index.php是我的控制器脚本,当用户想要在MySQL数据库中编辑作者或添加作者时,它会调用authors.html.php来显示作者,最后是form.html.php 我遇到的问题是,当用户点击更新按钮时,数据库无法更新作者详细信息。。。我的控制器脚本似乎没有捕获“editform”操作?我不完全清楚它为什么会下滑。以下是这些文件的摘录: index.php(控制器): authors.h
authors.html.php
<?php include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/helpers.inc.php' ?>
// When I call "htmlout()" is the same as "echo htmlspecialchars()"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Manage Authors</title>
</head>
<body>
<p>
<h1>Manage Authors</h1>
<p>
<a href="?add">Add New Author</a>
</p>
<ul>
<?php foreach ($authors as $author): ?>
<li>
<form action="?<?php $action ?>" method="post">
<div>
<?php htmlout($author['name']); ?>
<input type="hidden" name="id" value="<?php echo $author['id']; ?>">
<input type="submit" name="action" value="Edit">
<input type="submit" name="action" value="Delete">
</div>
</form>
</li>
<?php endforeach; ?>
</ul>
<p>
<a href="..">Return to JMS Home</a>
</p>
</p>
</body>
</html>
//当我调用“htmlout()”时,它与“echo htmlspecialchars()相同”
管理作者
管理作者
-
我发现我做错了什么!呸
我在这条线上搞砸了
$s->prepare($sql);
应该是的
$s = $pdo->prepare($sql);
正如@MamaWalter所指出的,我在用$\u GET作为$\u POST变量,所以我改变了它,它现在工作得很好
@linus72982您建议使用var_dump()是一个巨大的帮助,我是PHP新手,因此不知道它。。。再次感谢你所做的一切 为什么要对此操作使用GET param并使用POST请求?我想$action是在您的helpers文件中设置的?设置为什么?另外,在您将请求路由到的文件顶部抛出一个“var_dump($_POST);die();”,并确保它以这样的方式到达,您知道问题所在的文件。$action实际上设置在顶部,$pageTitle='Edit Author'$action='editform'$name=$row['name']$email=$row['email']$id=$row['id']$按钮='更新作者'@linus72982我将尝试var_dump()并更新你们,谢谢你们的建议!
$s->prepare($sql);
$s = $pdo->prepare($sql);