基本上,我正在开发一个基于 HTML 和 PHP 文件的预订工具。每当我尝试在我的预订设施页面上提交表单时,该表单会将数据插入到名为 M3_156020K_Syahri_SportFacility 的 mysql 数据库下名为 booking_facilities 的 mysql 表中。相反,它向我显示此错误:
Notice: Undefined index: activities on line 16
Notice: Undefined index: venue on line 17
MySQL 数据库
BookFacilities.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/bookingfacilities/bookingfacilities_desktop.css">
<link rel="stylesheet" type="text/css" href="css/bookingfacilities/bookingfacilities_tablet.css" media="screen and (max-width:768px)">
<link rel="stylesheet" type="text/css" href="css/bookingfacilities/bookingfacilities_mobile.css" media="screen and (max-width:480px)">
<script src="js/bookfacilitiesvalidate.js"></script>
</head>
<body>
<div id="wrapper">
<header>
<nav id="mainMenu">
<img src="logo/logo.png" id="logo">
<ul>
<li><a href="home.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="rates.html">Booking Rates</a></li>
<li><a href="facilities.html">Recreation</a></li>
</ul>
</nav>
</header>
<section id="banner">
<div id="ritu" class="shadow">
<img src="images/content_pure.jpg">
<img src="images/Sports-Hub-Gym.jpg">
<img src="images/gym.jpg">
<img src="images/ClubFitt2jpg.jpg">
</div>
</section>
<section id="content">
<div id="booking">
<div class="row">
<div class="image" style="background-color:black; color:white; font-weight:bold;">
<p style="padding-left:15px; padding-top:0px;">Booking Facilities</p>
</div>
<div class="image" style="background-color:white; color:black; font-weight:bold;">
<p style="padding-left:15px; padding-top:0px;">Booking Cart</p>
</div>
</div>
</div>
<div id="box">
<div class="user">
<form action="facilities.php" method="post" onsubmit="return validate();">
<p style="color:white; font-size:18px;">Activites</p>
<select name="activities" id="activities">
<option value="0">Select an activity</option>
<option value="1">Badminton</option>
<option value="2">Basketball</option>
<option value="3">Table Tennis</option>
<option value="4">Running Track</option>
<option value="5">Dancing</option>
<option value="6">Swimming Pool</option>
<option value="7">Soccer</option>
</select>
<p style="color:white; font-size:18px;">Venues</p>
<select name="venue" id="venue">
<option value="0">Select a venues</option>
<option value="1">Sports Field and Running Track</option>
<option value="2">Tennis Courts</option>
<option value="3">Dance / Aerobics Studios</option>
<option value="4">Indoor Sports Hall</option>
<option value="5">Multipurpose Rooms</option>
<option value="6">Indoor / Outdoor Swimming Pool</option>
</select>
</form>
</div>
<div class="user">
<form action="facilities.php" method="post" onsubmit="return validate();">
<p style="color:white; font-size:18px;">Days</p>
<select name="days" id="days">
<option value="0">All Days</option>
<option value="1">Sun</option>
<option value="2">Mon</option>
<option value="3">Tues</option>
<option value="4">Wed</option>
<option value="5">Thurs</option>
<option value="6">Fri</option>
<option value="7">Sat</option>
</select>
<p style="color:white; font-size:18px;">Date</p>
<input type="date" name="calendar" id="calendar"><br>
<input type="submit" name="searchbtn" value="Search" style="margin-top:20px;">
</form>
</div>
</div>
</section>
<footer>
<p>© Copyright 2016 SportLab. All Rights Reserved.</p>
<nav id="submenu">
<ul>
<li><a href="#">Sitemap | </a></li>
<li><a href="contact.html"> Contact |</a></li>
<li><a href="term.html">Term of Use </a></li>
<li><a href="privacy.html">| Privacy </a></li>
</ul>
</nav>
</footer>
</div>
</body>
</html>
facilities.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Booking Facilities</title>
</head>
<body>
<?php
if(isset($_POST["searchbtn"]))
{
$a=$_POST['activities']; <--- Line 16
$v=$_POST['venue']; <--- Line 17
$dy=$_POST['days'];
$dt= date('d-m-y',strtotime($_POST['calendar']));
$conn=mysqli_connect("localhost", "root", "" , "M3_156020K_Syahri_SportFacility");
$sql_insert = "INSERT into booking_facilities (activities, venue, day, date) values ('$a', '$v' , '$dy' , '$dt' )";
$result=mysqli_query($conn, $sql_insert);
if($result)
{
echo "Success";
}
else
{
echo "Failed";
}
}
?>
</body>
</html>
虽然 day 被插入到 mysql 表中,但不是用于事件和 field 。我无法弄清楚我的代码有什么问题。我该如何修复它?
最佳答案
检查以下行:
<form action="facilities.php" method="post" onsubmit="return validate();">
<p style="color:white; font-size:18px;">Days</p>
<select name="days" id="days">
<option value="0">All Days</option>
<option value="1">Sun</option>
<option value="2">Mon</option>
<option value="3">Tues</option>
<option value="4">Wed</option>
<option value="5">Thurs</option>
<option value="6">Fri</option>
<option value="7">Sat</option>
</select>
<p style="color:white; font-size:18px;">Date</p>
<input type="date" name="calendar" id="calendar"><br>
<input type="submit" name="searchbtn" value="Search" style="margin-top:20px;">
</form>
这里,searchbtn 以上述形式可用,activities 属于不同的形式。与在
isset($_REQUEST['searchbtn'])
您不能访问 activities
,因为它属于不同的表单。因此,删除所有表单并使其成为一个。
关于php - 如何修复 PHP 表单操作中的 'Undefined index:'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338817/