【发布时间】:2021-02-26 12:41:38
【问题描述】:
我正在使用链接到 MySQL 数据库的 PHP 创建一个表单。
我有多个问题,每个问题都需要回答是或否。
我已经设置了表单,以便将“是”和“否”响应提交到数据库。但是,如果用户选择否,我需要一个隐藏值(为什么会选择否的预定义详细信息)提交到数据库上的不同表。目前提交的时候,无论用户选择yes还是no,都会提交隐藏值。
我的代码如下:
<label for="question1" class="input_labels">1. Confidentiality protocols were adhered to</label>
<input class="form-check-input-line" type="radio" name="question1" id="question1" value="YES"> YES
<input class="form-check-input-line" type="radio" name="question1" id="question1" value="NO"> NO <br>
<input type="hidden" id="error1" name="error1" value="Confidentiality protocols were not adhered to">
query1 是提交实际的 Yes / No 响应,query2 是提交隐藏值(我还没有将所有详细信息添加到 query2,因为我正在尝试测试它是否首先工作):
$query1 = "INSERT INTO questions
(questionsID, question1, question2, question3, question4, question5, question6, question7, question8, question9, question10, question11, question12, question13, question14, question15, question16, question17, question18, question19, question20, question21, question22, question23, question24)
VALUES
(NULL, '$question1', '$question2', '$question3', '$question4', '$question5', '$question6', '$question7', '$question8', '$question9', '$question10', '$question11', '$question12', '$question13', '$question14', '$question15', '$question16', '$question17', '$question18', '$question19', '$question20', '$question21', '$question22', '$question23', '$question24')";
$result1 = mysqli_query( $conn, $query1);
} else {
$submitError = "The form was not submitted, please try again <br>";
}
$query2 = "INSERT INTO fixable_errors
(fixableID, error1)
VALUES
(NULL, '$error1')";
$result2 = mysqli_query( $conn, $query2);
【问题讨论】:
-
你能贴出从表单中获取数据并提交的代码吗,看看你是不是弄错了
-
放更多代码。目前还不清楚
-
????如果您刚刚开始使用 PHP 并想构建应用程序,我强烈建议您查看各种 development frameworks 以查看是否可以找到适合您的风格和需要。它们有多种风格,从 Fat-Free Framework 这样的轻量级到像 Laravel 这样的更全面。这些为您提供了具体的工作示例以及如何编写代码和组织项目文件的指导。
-
警告:使用
mysqli时,您应该使用parameterized queries 和bind_param将任何数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将$_POST、$_GET或任何类型的数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 -
@tadman 指出,谢谢!我一定会看看你推荐的框架