<?php
// connect to the database
    include('connection.php');
	include('includes/header.php');
	
	if (isset($_POST['editproject'])){
//if(count($_POST)>0) {
mysqli_query($conn,"UPDATE project set Id='" . $_POST['Id'] . "',
 ProjectName='" . $_POST['ProjectName'] . "',
 ContactName='" . $_POST['ContactName'] . "',
 SortAddress='" . $_POST['SortAddress'] . "' ,
 Address='" . $_POST['Address'] . "' ,
 Email='" . $_POST['Email'] . "',

 PhoneNo='" . $_POST['PhoneNo'] . "'
 WHERE Id='" . $_POST['id'] . "'");
$message = "Record Modified Successfully";
}
$result = mysqli_query($conn,"SELECT * FROM project WHERE id='" . $_GET['Id'] . "'");
$row= mysqli_fetch_array($result);




    

?>


<style>
form {
  margin-right:100px;
  margin:20px 100px 20px 100px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}
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=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=cancel] {
  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-left:150px;
  margin-top:5px;
  border-radius: 15px;
  background-color: #3c42383d;
  padding: 20px 50px 20px 50px;
}
button:hover {
  background-color: #45a049;
}
form {
  width: 80%;
  border-collapse: collapse;
  margin: 100px auto;
}

</style>


<html>
<head>

</head>
<body>


<hr>
    <div id="page-wrapper"> 
   
      <div class="row">
        <form action="actionproject.php" method="post" enctype="multipart/form-data" >
		
		
		<th><h1 class="page-header">
		
		
		<p class="btn btn-lg btn-primary" style="font-size:xx-large;"><span class="different-text-color" style="font-weight:bold;"><a href="AddProject.php" class="btn btn-lg btn-danger" style="font-weight:bold;"><i class="fa fa-university "></i>Add New Project</a>*  View <?php echo $row['ProjectName']; ?>  Project *<a href="displayproject.php" class="btn btn-lg btn-danger" style="font-weight:bold;" ><i class="bi bi-arrow-bar-up"></i>Cancel</a></h1>
</th>
		
		
		
		
		<label for="fname">ID</label>
		<input type="hidden" name="id" class="txtField" value="<?php echo $row['id']; ?>">
		<input type="text" name="id"  value="<?php echo $row['Id']; ?>">
		
		
		 <label for="fname">Project Name</label>
    <input type="text" name="ProjectName" value="<?php echo $row['ProjectName']; ?>">
	
	<label for="lname">Contact Name</label>
  <input type="text" name="ContactName" class="txtField" value="<?php echo $row['ContactName']; ?>">
	
	<label for="number_format">Phone No</label>
    <input type="text" name="PhoneNo" class="txtField" value="<?php echo $row['PhoneNo']; ?>">
	
	<label for="lname">Email</label>
    <input type="text" name="Email" class="txtField" value="<?php echo $row['Email']; ?>">

	<label for="fname">SortAddress</label>
    <input type="text" name="SortAddress" value="<?php echo $row['SortAddress']; ?>">
	
	<label for="fname">Address</label>
    <input type="text" name="Address" value="<?php echo $row['Address']; ?>">
	
	<label >FileName</label>
	
	<td>
	<input type="file" name="FileName" value="<?php echo $row['FileName']; ?>"/>
	<img src="upload/<?php echo $row ['FileName']; ?>" width="150px" height="100px">
	</td>

	
          <button type="submit" name="editproject">Update</button>
		  <button><a href="displayproject.php" type="cancel">Cancel</button>
		  
        </form>
      </div>
    </div>
  </body>

</html>
<script>


    $(function() {
		
     $('.notification').tooltip({
        selector: "[data-toggle=tooltip]",
        container: "body"
    })

    });
    </script>