Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当用户点击submit按钮时,index.php不会捕获操作并更新数据库_Php_Mysql_Html - Fatal编程技术网

当用户点击submit按钮时,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

这里有3个文件,index.php、authors.html.php和form.html.php,index.php是我的控制器脚本,当用户想要在MySQL数据库中编辑作者或添加作者时,它会调用authors.html.php来显示作者,最后是form.html.php

我遇到的问题是,当用户点击更新按钮时,数据库无法更新作者详细信息。。。我的控制器脚本似乎没有捕获“editform”操作?我不完全清楚它为什么会下滑。以下是这些文件的摘录:

index.php(控制器):


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);