<?php
require('includes/header.php');

   include('connection.php');
 
?>
<!DOCTYPE html>
<html lang="en" >
  
<meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <link rel="shortcut icon" type="image/x-icon" href="upload/icon.png">
    <title>Add Employee</title>
	<head>
      <link rel="stylesheet" type="text/css" href="assets/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/select2.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/dataTables.bootstrap4.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap-datetimepicker.min.css">
    <link rel="stylesheet" type="text/css" href="assets/css/style1.css">
<?php

$sqlQuery = "SELECT JobTitle, JId FROM jobtitles where JUserId ='" . $_SESSION['UserId'] . "'";
$resultSet = mysqli_query($conn, $sqlQuery)
?>


<style>
.page-header{
	border-radius: 20px;
	color: #f9f9f9;
	text-align: center;
	background-color: #2780e3;
	width: 100%;
	margin-left: 0%;
	font-weight: bold;
	}
form {
  margin-right:100px;
  margin:20px 100px 20px 100px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}
.row {
    margin-left: -40px;
    margin-right: -40px;
}
input[type=text], select {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
  input[type=number] {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
input[type=password] {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

input[type=submit] {
  width: 50%;
  background-color: #4CAF50;
  color: white;
  padding: 20px;
  margin: 8px 0;
  border: 1px;
  border-radius: 15px;
  cursor: pointer;
  margin-left: 200px;
}
input[type=reset] {
  margin-left:150px;
  margin-top:5px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}

input[type=submit]:hover {
  background-color: #45a049;
}
button {
 
  margin-top:5px;
  border-radius: 20px;
  background-color: #3c42383d;
  padding: 20px 20px 20px 20px;
}
button:hover {
  background-color: #45a049;
}
form {
  width: 80%;
  border-collapse: collapse;
  margin: 100px auto;
}

</style>

</head>
  <body>
    <div id="page-wrapper"> 
      <div class="row">
        <form action="Employeesave.php" method="post" enctype="multipart/form-data" >
			<h2 class="page-header">Add New Employee</br>কর্মচারী যোগ করুন</h2>
		
             <label for="fname">Employee Name / কর্মচারী  নাম :</label>
            <input type="text" name="EmployeeName" required placeholder="Employee Name...">
	
            <label for="number_format">Phone No / মোবাইল নাম্বার :</label>
            <input type="text" name="PhoneNo" placeholder="Phone No....">

            

	
            <label for="lname">Address / ঠিকানা :</label>
            <input type="text" name="Address" placeholder="Address....">
	
			<label for="lname">Job Title / পদবী :</label>
	
          <select name="JobTitle" class="form-control">
                  <option value="">Choose A Job Title ....</option>
                  <?php while($rows = mysqli_fetch_array($resultSet)){
                  ?>
                  <option value="<?php echo $rows['JId'];?>"><?php echo $rows['JId'];?> = <?php echo $rows['JobTitle'];?></option>

                  <?php
                  }
                  ?>
                  </select>


			<label for="lname">Salary / বেতন :</label>
			<input type="number" name="Salary" placeholder="Salary....">
          

         
			<label for="lname">status:</label>
			<select type="text" name="Status" id="">
				<option value="1">Active</option>
				<option value="0">Inactive</option>
			
			</select>
	
          <h3>Upload File / ছবি দিন :</h3>
			<input type="file" name="myfile">
		  <div class="m-t-20 text-center">
         	 <button class="btn btn-primary submit-btn btn-rounded" type="submit" name="Employeesave">Save</button>
		  	<button type="reset" name="" class="btn btn-primary submit-btn btn-rounded" value="Clear Fields">Reset</button>
		  </div>
        </form>
      </div> 
    </div>
  </body>
</html>