php - 在表单提交时,将表单数据发送到数据库
问题描述
在尝试将表单数据发送到数据库表时,我遇到了问题(和担忧,将在最后解释)。提交时,它什么也不做,我的表中没有生成新行。
我有以下文件夹结构:
template-parts
form
form.php
send-to-database.php
snippets
form-step-1.php
form-step-2.php
form-step-3.php
在我的database
中,我创建了一个名为attendants
. 任何表单提交数据都将发送到这里。
表单.php
<div class="form" id="rsvp-form">
<div class="container">
<div class="row">
<div class="col-12">
<form id="rsvpForm" action="send-to-database.php" method="post">
<?php get_template_part('template-parts/snippets/form-step-1'); ?>
<?php get_template_part('template-parts/snippets/form-step-2'); ?>
<?php get_template_part('template-parts/snippets/form-step-3'); ?>
</form>
</div>
</div>
</div>
</div>
form-step-1.php
<fieldset>
<input type="text" name="fname" placeholder="First name*" required />
<input type="text" name="lname" placeholder="Surname*" required />
<input type="text" name="email" placeholder="Email address*" required />
<textarea name="address" placeholder="Address*" required></textarea>
<input type="button" name="next" class="next action-button" value="Next" />
</fieldset>
表单-step-2.php
<fieldset>
<div class="attending">
<p>Which events will you be attending?</p>
<div class="checkbox">
<input type="checkbox" id="event1" name="jago" value="Jago">
<label for="event1">Jago</label>
</div>
<div class="checkbox">
<input type="checkbox" id="event2" name="wedding" value="Wedding">
<label for="event2">Wedding</label>
</div>
<input type="text" name="attendee" placeholder="Attendee name">
</div>
<div class="coaches">
<p>Will you be travelling by the coaches provided?</p>
<div class="radio">
<label>
<input type="radio" id="travel_yes" name="travel" value="Yes">
<span>Yes</span>
</label>
</div>
<div class="radio">
<label>
<input type="radio" id="travel_no" name="travel" value="No">
<span>No</span>
</label>
</div>
</div>
<input type="button" name="previous" class="previous action-button" value="Previous" />
<input type="button" name="next" class="next action-button" value="Next" />
</fieldset>
表单-step-3.php
发送到数据库.php
<?php
// fieldset 1
$first_name = $_POST['fname']; // varchar
$last_name = $_POST['lname']; // varchar
$email = $_POST['email']; // varchar
$address = $_POST['address']; // varchar
// fieldset 2
$jago = $_POST['jago']; // boolean
$wedding = $_POST['wedding']; // boolean
$attendee_name = $_POST['attendee']; // varchar
$travel = $_POST['travel']; // boolean
// fieldset 3
$note = $_POST['other']; // varchar
// connect to database
$host = "localhost"; // Host name
$username = "****"; // Mysql username
$password = "****"; // Mysql password
$db_name = "rsvp"; // Database name
// Connect to server and select databse.
$dbconn = mysqli_connect($host, $username, $password)or die("cannot connect");
mysqli_select_db($dbconn, $db_name)or die("cannot select DB");
$query = "INSERT INTO `attendants` (`first_name`, `last_name`, `email`, `address`, 'attending_jago', 'attending_wedding', 'attendee_name', 'additional_note') VALUES ('$first_name', '$last_name','$email', '$address', '$jago', '$wedding', '$attendee_name', '$travel', '$additional_note' )";
var_dump($query);
mysqli_query($dbconn, $query);
?>
我还担心主题本身中存在与数据库的连接详细信息,我想避免这种情况,但我还没有看到任何其他方法来做到这一点?
解决方案
推荐阅读
- ubuntu - 闭包编译器在 Ubuntu 中缺少 ECMASCRIPT6 选项
- python - Jupyter Notebook 错误 Traceback(最近一次调用最后一次):
- c# - 如何在“SqlCommand”语句中包含参数并设置它们的值?
- php - BIGINT 在 mysql 中创建为 INT
- qt - 如何为 Qt Linux 应用程序启用 SSL?
- python - Django 扩展 UTF-8
- javascript - 浏览器在页面中查找的 CSS
- git - 跳过“XXX”:密钥不可用
- swift - 运行时在 SKScene 编辑器中显示的 Xcode 图像为黑色
- c# - 尽管有 info.plist 属性,Xamarin IOS 项目仍允许旋转