2016-12-27 16 views
1

基本上我在HTML和PHP文件上的預訂工具上工作。每當我嘗試在我的預訂設施頁面上提交表單時,表單會將數據插入名爲booking_facilities的mysql表中,該表稱爲M3_156020K_Syahri_SportFacility。相反,它表明我這個錯誤:如何修復PHP表單操作中的'Undefined index:'?

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> 

雖然當天是插入到MySQL表而不是活動和venues.I找不出什麼毛病我code.How我可以修復它?

+0

只使用一種形式提交所有字段 –

回答

2

檢查以下行:

<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在上述形式和活動可屬於不同的形式。 With in

isset($_REQUEST['searchbtn']) 

您不能訪問activities,因爲它屬於不同的形式。所以刪除所有表格並將其製作成一個。

0

使用一種形式提交所有領域

<form action="facilities.php" method="post" onsubmit="return validate();"> 
    <!-- select for activities --> 
    <!-- select for venues --> 
    <!-- select for days --> 
    <!-- submit button --> 
    </form> 
0

這裏要初始化兩種形式具有相同的動作。所以當你點擊每個表單時,那個表單中的元素將被提交。但是當你得到的請求,你嘗試從兩種形式獲取值,那麼就說明你的錯誤,

<form action="facilities.php" method="post" onsubmit="return validate();"> 
..... 
</form> 

使用您的需求,這下面的代碼, HTML文件

<div id="box"> 
    <form action="facilities.php" method="post" onsubmit="return validate();"> 
    <div class="user"> 
     <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> 
    </div> 

    <div class="user"> 
     <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;"> 
    </div> 
    </form> 
</div> 

使用相同的facilities.php插入代碼。這裏不需要這個PHP文件中的HTML標籤,因爲你只是試圖使用這個文件做一些後端工作,然後在重定向到另一個帶有成功消息的頁面之後。