php - 如何修复 PHP 表单操作中的 'Undefined index:'?

标签 php mysql

基本上,我正在开发一个基于 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 数据库

show database

BookFacilities.html

show website

<!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 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| </a></li>
       <li><a href="contact.html">&nbsp;&nbsp;&nbsp;Contact &nbsp;&nbsp;&nbsp;&nbsp;|</a></li>
       <li><a href="term.html">Term of Use  </a></li>
       <li><a href="privacy.html">| &nbsp;&nbsp;&nbsp;&nbsp;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/

相关文章:

mysql - 在 tomcat7 中部署 Web 应用程序

php - 为什么mysql查询只返回一行

php - 如何获得两个时间戳之间的分钟差

仅处理几 MB 数组时使用超过 512MB 的 PHP 脚本

php - 网站到计算机的通信

mysql - 如何在加入和辞职日期内获取员工列表,包括laravel mysql中的空日期

mysql - 选择账单查询

php - 获取文本 PHP5 不适用于 Debian

php - 按文件类型划分显示的数据

mysql - Sonar 检查 https ://analysis. apache/system 处的配置