0

我有一个名为 waiting.php 的页面,该页面是开始辅导员和学生之间真实生活会话的门户。我有一个名为“name='submit”的提交按钮

我有一段代码调用提交按钮(isset),一旦发生这种情况,我希望 PDO 语句执行插入查询。但是我检查了 phpmyadmin 并没有插入任何内容。

我的代码是这样的:

f(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (counselorname) VALUES (:counselorname)");
    $query->bindParam(':counselorname', $_POST['namedrop']);
    $query->execute();
    }

现在这是制作提交按钮和辅导员姓名下拉菜单的实际代码:

echo "<td> 
                <form method= 'post'>
                    </form><select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value='dmin-John'>Admin - John</option>
                        <option value='Admin-Christine'>Admin - Christine</option>
                        <option value='Admin-Dawne'>Admin - Dawne</option>
                        <option value='Counselor-Cherie'>Counselor - Cherie</option>
                        <option value='Counselor-Tootie'>Counselor - Tootie</option>
                        <option value='Counselor-Debbie'>Counselor - Debbi</option>
                        <option value='FrontDesk-Delores'>Front Desk - Delores</option>
                        <option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
                    </select> 
                </form>";

echo "<td> <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
            <input type='submit' name='submit' value='Start Session'>
            </form> </td>";

我是 PHP 新手,所以我的逻辑有点像那里,但我的语法和知道如何实现我的逻辑低于平均水平。

任何帮助将非常感激。

编辑 :

这就是页面的外观:

等待.php

编辑2:

echo "<td> 
            <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
                    <select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value='dmin-John'>Admin - John</option>
                        <option value='Admin-Christine'>Admin - Christine</option>
                        <option value='Admin-Dawne'>Admin - Dawne</option>
                        <option value='Counselor-Cherie'>Counselor - Cherie</option>
                        <option value='Counselor-Tootie'>Counselor - Tootie</option>
                        <option value='Counselor-Debbie'>Counselor - Debbi</option>
                        <option value='FrontDesk-Delores'>Front Desk - Delores</option>
                        <option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
                    </select> 

            <td> <input type='submit' name='submit' value='Start Session'>
            </form> </td>";
}

  echo "</tr>";
  echo "</table>";

if(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (id, counselorname) VALUES (:id, :counselorname)");
    $query = $dbh->bindParam(':id', $row['id']);
    $query->bindParam(':counselorname', $_POST['namedrop']);
    $query->execute();
    }
4

3 回答 3

1

你的标记有缺陷。您的 $query 语句需要namedrop,但此选择列表与您的提交按钮不是同一表单的一部分。

您的代码显示了 3 种不同的形式,但没有一种是完整的。

<form method="post" action="..." target="_new">
    -- All components and elements must be declared inside this node
</form>
于 2013-01-02T15:27:43.003 回答
0

您可以添加绑定数组以直接执行语句:

if(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (counselorname) VALUES (:counselorname)");
    $query->execute(array(':counselorname', $_POST['namedrop']));
}
于 2013-01-02T15:23:06.183 回答
0

问题是:action="counselor.php?id="。$row['id'] 。"

这意味着插入脚本应该转到counselor.php 页面。它没有出现错误的原因是我告诉它所做的是工作接受不是我想要的方式。

第二个问题是表单必须在 method=post 如果不是 ID 将插入但不是名称。所以要解决这个问题:

echo "
        <td>    <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
                    <select name='namedrop'>
                        <option value=''>Counselor Name</option> 
                        <option value='dmin-John'>Admin - John</option>
                        <option value='Admin-Christine'>Admin - Christine</option>
                        <option value='Admin-Dawne'>Admin - Dawne</option>
                        <option value='Counselor-Cherie'>Counselor - Cherie</option>
                        <option value='Counselor-Tootie'>Counselor - Tootie</option>
                        <option value='Counselor-Debbie'>Counselor - Debbi</option>
                        <option value='FrontDesk-Delores'>Front Desk - Delores</option>
                        <option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
                    </select>
            </td>

            <td> <input type='submit' name='submit' value='Start Session'></td>
            </form> </td>";

然后在我的counsoror.php上我进行了测试以检查我是否得到任何东西:

$id = $_GET['id'];
echo "$id";

$name = $_POST['namedrop'];
echo "$name";

查看

然后我为运行查询所做的一切是:

if(isset($_POST['submit'])){
    $query = $dbh->prepare("INSERT INTO counselors (id, counselorname) VALUES (:id, :counselorname)");
    $query->bindParam(':id', $_GET['id']);
    $query->bindParam(':counselorname', $_POST['namedrop']);
    $query->execute();
    }

然后这是完成的结果:

结束

于 2013-01-02T16:15:39.537 回答