

<?php
// connect to the database
    include('connection.php');
	 include('includes/header.php');
	 
$sqlQuery = "SELECT Id, ProjectName ,ContactName,SortAddress, status FROM project where status=1";
$resultSet = mysqli_query($conn, $sqlQuery)
?>
<!DOCTYPE html>
<html>
<head>
   <link rel="stylesheet" href="style.css">
   <!-- Select2 CSS --> 
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" /> 

<!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 

<!-- Select2 JS --> 
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>

<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
  box-sizing: border-box;
}
form-content{
  float: left;
  width: 100%;
  margin-top: 6px;
}


input[type=text], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: vertical;
}
input[type=Amount], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  resize: vertical;
}


label {
  padding: 12px 12px 12px 0;
  display: inline-block;
}

button {
  width: 20%;
  margin-left:10%;
  margin-top:5px;
  border-radius: 15px;
  background-color: green;
  padding: 20px 20px 20px 20px;
}
button:hover {
  background-color: #05ceed;
}
#content {
  border-radius: 0px;
  background-color: #fcfcfc;
  padding: 2%;
  margin-left: 50px;
}
.page-header{
	margin-top: 5px !important;
	text-align: center;
	background-color: green;
	width: 50%;
	 margin-left: 25%;
}
}
.red{
	text-align: center ;
	text-color: green !important;
	width: 50%;
	 margin-left: 25%;
}


.from {
  border-radius: 15px;
  background-color: red;
  padding: 50px;
  margin-left: 10px;
}

.col-25 {
  float: left;
  width: 25%;
  margin-top: 6px;
}

.col-75 {
  float: left;
  width: 75%;
  margin-top: 6px;
}
  .select2 {
   width: 75% !important;
  margin-top: 6px;
}

/* Clear floats after the columns */
.row:after {
  content: "";
  display: table;
  clear: both;
}

/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
@media screen and (max-width: 700px) {
  .col-25, .col-75, input[type=submit] {
    width: 100%;
    margin-top: 0;
  }
 .select2 {
   width: 100% !important;
}
}

</style>


 
</head>
<body>

	<div id="content">
	
        <form class="from" action="actionproject.php" method="post" enctype="multipart/form-data" >
	
	<h1 class="page-header">
		<p style="font-size:xx-large;">
		
		<span style="font-weight:bold;">Add Project Payment

	</h1>

	<div class="row">
		<div class="col-25">
			<label for="fname">PayDate :</label>
		</div>
		<div class="col-75">
			<input type="date" name="PaymentDate"  required placeholder="dd-mm-yyyy">
		</div>
	</div>

	<div class="row">
		<div class="col-25">
			<label for="lname">Payment Project :</label>
		</div>
		<div class="project">
			<select type="text"  id="project" name="ProjectName" class="form-control" required placeholder>
				<option  value="">Choose A Payment Project</option>
				<?php while($rows = mysqli_fetch_array($resultSet)){
				?>
				<option class="red" value="<?php echo $rows['Id'];?>"><?php echo $rows['ProjectName'];?>!!  Address = <?php echo $rows['SortAddress'];?>!!  ContactName = <?php echo $rows['ContactName'];?></option>
				
				<?php
				}
				?>
			</select>
		</div>
	</div>
	<div class="row">
		<div class="col-25">
			<label for="lname">Amount :</label>
		</div>
		<div class="col-75">
			<input type="Amount" class="red" name="Amount" required placeholder="Amount....">
		</div>
	</div>
 	<div class="row">
		<div class="col-25">
	
			<label for="lname">Payment Method :</label>
   		</div>
		<div class="col-75"> 
			<select type="text" name="paymentmethod" id="">
				<option value="">Choose A Payment Method</option>
				<option value="Cash">Cash</option>
				<option value="Bkash">Bkash</option>
				<option value="Chaque">Chaque</option>
				<option value="Others">Others</option>
			</select>
		</div>
	</div>
	<div class="row">
		<div class="col-25">
			<label for="number_format">Remarks</label>
		</div>
		<div class="col-75"> 
			<input  type="text" name="Remarks" placeholder="Remarks....">
		</div>
	</div>
	<div class="row">
      <div class="col-25">							
  
			<label for="lname">Received By :</label>
		</div>
		 <div class="col-75"> 
			<input   type="text" name="ReceivedBy" placeholder="Received By....">
		</div>
	</div>
	<div class="row">
		<div class="col-25">
			<label  for="lname">Payment By :</label>
		</div>
		<div class="col-75"> 
			<input  type="text" name="PaymentBy" placeholder="Payment By....">
		</div>
	</div>
			<button type="submit" name="savetransations">Save</button>
			<button type="reset" name=""  value="Clear Fields">Clear</button>
			<button  type="reset"><a href="project_tran-display.php">Cancel</a></button>
			
        </form>
</div>

</body>
</html>



<script>
$("#project").select2( {
	placeholder: "Choose A Payment Project",
	allowClear: true
	} );
</script>


