Mini Shell

Direktori : /home/admin/web/mcpv.demarco.ddnsfree.com/public_html/external/prestataires/
Upload File :
Current File : /home/admin/web/mcpv.demarco.ddnsfree.com/public_html/external/prestataires/prestataire_admin.php

<?php
require_once(__DIR__ . "/_include/init.php");
if(!current_user_can('administrator') ) {
	echo "Section réservée aux administrateurs du site uniquement. <a href='/mcpv/index.php'>Revenir au site</a>";
	exit();
}
$msg = "&nbsp;";
$mode = 1 ; // 1=recherche 2=affichage

if ($mode = 1) 
{
    extract($_POST);
    if(isset($btn_search)) 
    {
		$query = $db->prepare('select * from v_prestataires where localisation = "' . trim($localisation) . '" order by nom, prenom');
		$prestataires = $query->execute();
		$recs = 0;
		while($row = $prestataires->fetchArray(SQLITE3_ASSOC))
		{
			$recs++;
		}
		$mode = 2;
	}
}
?>

<!doctype html>
<html lang="fr">
<head>

<?php require_once("_include/meta.php"); 
      require_once("_include/link.php"); 
      require_once("_include/script.php"); 
      require_once("_include/scripts.js"); 
?>

<script type="text/javascript">

$(document).ready(function() {
	$('#btn_search').html('<i class="fa fa-search"></i> Rechercher');
		
	$('#btn_search').on('click',function() {
		$('#btn_search').html('<i class="fa fa-spinner fa-spin"></i> Rechercher');
		$('#search_form').submit();
	});
	
	$('.view-btn').on('click',function() {
		$tr = $(this).closest('tr');
		var data = $tr.children('td').map(function() {
			return $(this).text();
		}).get();
		$('#id_view').val(data[0]);
		$('#nom_view').text(data[1]);
		$('#prenom_view').text(data[2]);
		$('#adresse_view').text(data[3]);
		$('#npa_view').text(data[4]);
		$('#lieu_view').text(data[14]);
		$('#fonction_view').text(data[15]);
		$('#tel_view').text(data[17]);
		$('#email_view').text(data[16]);
		$('#href_email_view').attr('href', 'mailto:' + data[16]);
		$('#remarque_view').text(data[12]);
		$('#avis_view').text(data[18]);
		$('#note_g_view').val(data[5]);
		$('#text_note_g_view').text(parseFloat(data[5]).toFixed(1));
		$('#note_c1_view').val(data[6]);
		$('#text_note_c1_view').text(parseFloat(data[6]).toFixed(1));
		$('#note_c2_view').val(data[7]);
		$('#text_note_c2_view').text(parseFloat(data[7]).toFixed(1));
		$('#note_c3_view').val(data[8]);
		$('#text_note_c3_view').text(parseFloat(data[8]).toFixed(1));
		$('#note_c4_view').val(data[9]);
		$('#text_note_c4_view').text(parseFloat(data[9]).toFixed(1));
		$('#note_c5_view').val(data[10]);
		$('#text_note_c5_view').text(parseFloat(data[10]).toFixed(1));
		$('#note_c6_view').val(data[11]);
		$('#text_note_c6_view').text(parseFloat(data[11]).toFixed(1));
		$('#btn-modal-listeavis').prop('hidden', false);
		$('#btn-modal-detail').prop('hidden', true);
		$('#btn-modal-fermer').prop('disabled', false);
		$('#detail-modal').prop('hidden',false);
		$('#listeavis-modal').prop('hidden',true);
		$('#view-modal-main').prop('class','modal-dialog modal-dialog-centered');
		$('#btn-modal-listeavis').html('<i class="fa fa-eye"></i> Voir les avis');
		$('#view-modal').modal('show');  	
	});
	
	$('.edit-btn').on('click',function() {
		$tr = $(this).closest('tr');
		var data = $tr.children('td').map(function() {
			return $(this).text();
		}).get();
		$('#id_upd').val(data[0]);
		$('#nom_upd').val(data[1]);
		$('#prenom_upd').val(data[2]);
		$('#adresse_upd').val(data[3]);
		$('#npa_upd').val(data[4]);
		$('#lieu_upd').val(data[14]);
		$('#fonction_upd').val(data[15]);
		$('#tel_upd').val(data[17]);
		$('#email_upd').val(data[19]);
		$('#remarque_upd').val(data[12]);
		$('#fonct_id_upd > option').each(function() {
			if($(this).text()==data[15]) {
				$(this).attr('selected', '');
			}
		});
		$('#loc_id_upd > option').each(function() {
			if($(this).text()==data[20]) {
				$(this).attr('selected', '');
			}
		});
		$('#edit-modal').modal('show');
	});

	// $('.avis-btn').on('click',function() {
		// $tr = $(this).closest('tr');
		// var data = $tr.children('td').map(function() {
			// return $(this).text();
		// }).get();
		// $('#id_avis').val(data[0]);
		// $('#prestataire_avis').text(data[13]);
		// $('#avis-modal').modal('show');
	// });
	
	$('.delete-btn').on('click',function() {
		$tr = $(this).closest('tr');
		var data = $tr.children('td').map(function() {
			return $(this).text();
		}).get();
		$('#id_del').val(data[0]);
		$('#nom_del').text(data[1]);
		$('#prenom_del').text(data[2]);

		$('#delete-modal').modal('show');
	});

	
	$('#btn_add').on('click',function() {
		$('#add-modal').modal('show');
		return false;
	});	
	
	$('#form-avis').on('submit',function() {
		$('#btn-modal-avis-fermer').prop('disabled', true);
		$('#btn-modal-avis').prop("disabled", true);
		$('#btn-modal-avis').html('<i class="fa fa-circle-o-notch fa-spin"></i> Attendre...');
		$.ajax({
			type: 'post',
			url: 'avis_ajouter.php',
			data: $('#form-avis').serialize(),
			success: function(data) {
				var response = data.trim();
				$('#btn-modal-avis').prop("disabled", false);
				$('#btn-modal-avis').html('<i class="fa fa-save"></i> Enregistrer');
				$('#btn-modal-avis-fermer').prop('disabled', false);
				if (response == '') {
					$('#avis-modal').modal('hide');
					$('#btn_search').trigger('click');
					$('#err-avis').html('');
					$('#err-avis').prop('hidden', true);
				}
				else
				{
					$('#err-avis').html(response);
					$('#err-avis').prop('hidden', false);
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) { 
				alert("Status: " + textStatus); alert("Error: " + errorThrown); 
			}
		});
		return false;	// prevent form submit
	});
	
	$('#form-edit').on('submit',function() {
		$('#btn-modal-edit-fermer').prop('disabled', true);
		$('#btn-modal-edit').prop("disabled", true);
		$('#btn-modal-edit').html('<i class="fa fa-circle-o-notch fa-spin"></i> Attendre...');
		$.ajax({
			type: 'post',
			url: 'prestataire_modifier.php',
			data: $('#form-edit').serialize(),
			success: function(data) {
				var response = data.trim();
				$('#btn-modal-edit').prop("disabled", false);
				$('#btn-modal-edit').html('<i class="fa fa-save"></i> Enregistrer');
				$('#btn-modal-edit-fermer').prop('disabled', false);
				if (response == '') {
					$('#edit-modal').modal('hide');
					$('#btn_search').trigger('click');
					$('#err-edit').html('');
					$('#err-edit').prop('hidden', true);
				}
				else
				{
					$('#err-edit').html(response);
					$('#err-edit').prop('hidden', false);
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) { 
				alert("Status: " + textStatus); alert("Error: " + errorThrown); 
			}
		});
		return false;	// prevent form submit
	});
	
	$('#form-add').on('submit',function() {
		$('#btn-modal-add-fermer').prop('disabled', true);
		$('#btn-modal-add').prop("disabled", true);
		$('#btn-modal-add').html('<i class="fa fa-circle-o-notch fa-spin"></i> Attendre...');
		$.ajax({
			type: 'post',
			url: 'prestataire_ajouter.php',
			data: $('#form-add').serialize(),
			success: function(data) {
				var response = data.trim();
				$('#btn-modal-add').prop("disabled", false);
				$('#btn-modal-add').html('<i class="fa fa-save"></i> Enregistrer');
				$('#btn-modal-add-fermer').prop('disabled', false);
				if (response == '') {
					$('#edit-modal').modal('hide');
					$('#btn_search').trigger('click');
					$('#err-add').html('');
					$('#err-add').prop('hidden', true);
				}
				else
				{
					$('#err-add').html(response);
					$('#err-add').prop('hidden', false);
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) { 
				alert("Status: " + textStatus); alert("Error: " + errorThrown); 
			}
		});
		return false;	// prevent form submit
	});

	$('#form-delete').on('submit',function() {
		$('#btn-modal-delete-fermer').prop('disabled', true);
		$('#btn-modal-delete').prop("disabled", true);
		$('#btn-modal-delete').html('<i class="fa fa-circle-o-notch fa-spin"></i> Attendre...');
		$.ajax({
			type: 'post',
			url: 'prestataire_supprimer.php',
			data: $('#form-delete').serialize(),
			success: function(data) {
				var response = data.trim();
				$('#btn-modal-delete').prop("disabled", false);
				$('#btn-modal-delete').html('<i class="fa fa-trash"></i> Confirmer');
				$('#btn-modal-delete-fermer').prop('disabled', false);
				if (response == '') {
					$('#btn_search').trigger('click');
					$('#err-delete').html('');
					$('#err-delete').prop('hidden', true);
					$('#delete-modal').modal('hide');
				}
				else
				{
					$('#err-delete').html(response);
					$('#err-delete').prop('hidden', false);
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) { 
				alert("Status: " + textStatus); alert("Error: " + errorThrown); 
			}
		});
		return false;	// prevent form submit
	});
	

	
	$('#btn-modal-listeavis').on('click',function() {
		$('#btn-modal-listeavis').html('<i class="fa fa-circle-o-notch fa-spin"></i> Attendre...');
		$('#btn-modal-fermer').prop('disabled', true);
		$.ajax({
			type: 'post',
			url: 'avis_liste.php',
			data: $('#form-view').serialize(),
			success: function(data) {
				var response = data.trim();
				$('#btn-modal-fermer').prop('disabled', false);
				if (response == '') {
					$('#btn-modal-listeavis').prop('hidden', true);
					$('#btn-modal-detail').prop('hidden', false);
					$('#btn-modal-fermer').prop('disabled', false);
					$('#detail-modal').prop('hidden',false);
					$('#listeavis-modal').prop('hidden',true);
					$('#view-modal-main').prop('class','modal-dialog modal-dialog-centered');
					$('#btn-modal-listeavis').html('<i class="fa fa-eye"></i> Voir les avis');
					$('#view-modal').modal('hide');
					$('#btn_search').trigger('click');
				}
				else
				{
					$('#detail-modal').prop('hidden',true);
					$('#view-modal-main').prop('class','modal-dialog modal-dialog-centered modal-xl');
					$('#btn-modal-detail').prop('hidden', false);
					$('#btn-modal-listeavis').prop('hidden', true);
					$('#listeavis-modal').prop('hidden',false);
					$('#listeavis-modal').html(response);
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) { 
				alert("Status: " + textStatus); alert("Error: " + errorThrown); 
			}
		});
		return false;	// prevent form submit
	});
	
	$('#btn-modal-detail').on('click',function() {
		$('#btn-modal-listeavis').prop('hidden', false);
		$('#btn-modal-detail').prop('hidden', true);
		$('#btn-modal-fermer').prop('disabled', false);
		$('#detail-modal').prop('hidden',false);
		$('#listeavis-modal').prop('hidden',true);
		$('#view-modal-main').prop('class','modal-dialog modal-dialog-centered');
		$('#btn-modal-listeavis').html('<i class="fa fa-eye"></i> Voir les avis');
		return false; // prevent form submit
	});
	
});	
function upd_note(id) {
	var textid = "text_" + id; 
	var note = document.getElementById(id).value;
	document.getElementById(textid).innerHTML = "<big>"+note+"</big>";
}
</script>

</head>

<body>
<?php
	$query = $db->prepare('select * from localisations order by localisation');
	$localisations = $query->execute();
	$query = $db->prepare('select * from fonctions order by fonction');
	$fonctions = $query->execute();
?>
<h5 class="text-center pt-3">Gestion prestataires</h5>

<h6 class="text-center text-danger"><?php echo "<b>" . $msg . "</b>"; ?></h6>
<form method="post" id="search_form">
<div class="container">
		<div class="row mb-4">
			<div class="col-2"></div>
			<div class="col-8">
				<div class="input-group input-group-sm">
					<div class="input-group-prepend w-40">
						<span class="input-group-text w-100">Localisation</span>
					</div>
					<select class="form-control" id="localisation" name="localisation">
						<?php
							while($row = $localisations->fetchArray(SQLITE3_ASSOC))
							{ 
								echo ($localisation == $row['localisation'] ? 
									"<option selected>" .  $row['localisation'] . "</option>" : "<option >" .  $row['localisation'] . "</option>");
							}
						?>
					</select>
					<div class="">
						<button type="submit" class="btn btn-sm btn-primary" id="btn_search" name="btn_search"><i class="fa fa-search"></i> Rechercher</button>
						<button class="btn btn-sm btn-primary mx-4" id="btn_add" name="btn_add"><i class="fa fa-plus"></i> Ajouter prestataire</button>
					</div>
				</div>
			</div>
			<div class="col-2"></div>
		</div>
</div>
</form>

<?php
    if($mode==2) {
		echo '<div class="container">';
        echo '
			<div class="row">
				<div class="col-4">
					<div class="input-group input-group-sm">
						<input id="searchtext" type="text" class="form-control" placeholder="Filtrer par nom" onkeyup="filterValues()"></input>
							<div class="input-group-append">
								<span class="input-group-text"><i class="fa fa-filter"></i></span>
							</div>
					</div>
				</div>
				<div class="col-8">
					<h6 class="text-primary p-2">
						<span class="badge badge-primary badge-pill">' . $recs . '</span> /
						<span id="filtered" class="badge badge-primary badge-pill">' .$recs. '</span>&nbsp;prestataires trouvés/filtrés
					</h6>
				</div>
			</div>
			';
        echo '<table id="liste" class="table table-striped table-sm small">';
        echo '<thead>';
        echo '<tr>';
        echo '<th>Nom</th>';
        echo '<th>Lieu</th>';
		echo '<th>Fonction</th>';
		echo '<th>Email</th>';
		echo '<th>Tel</th>';
        echo '<th>Avis</th>';
		echo '<th>Note globale</th>';	
		echo '<th>Action</th>';	
        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';
        while($prestataire = $prestataires->fetchArray(SQLITE3_ASSOC))
        {
                    echo '<tr>';
					echo '<td hidden>' . $prestataire['id'] .'</td>';												// data[0]
					echo '<td hidden>' . $prestataire['nom'] .'</td>';												// data[1]
					echo '<td hidden>' . $prestataire['prenom'] .'</td>';											// data[2]
					echo '<td hidden>' . $prestataire['adresse'] .'</td>';											// data[3]
					echo '<td hidden>' . $prestataire['npa'] .'</td>';												// data[4]
					echo '<td hidden>' . $prestataire['note_g'] .'</td>'; 											// data[5]
					echo '<td hidden>' . $prestataire['note_c1'] .'</td>';       									// data[6]
					echo '<td hidden>' . $prestataire['note_c2'] .'</td>';       									// data[7]
					echo '<td hidden>' . $prestataire['note_c3'] .'</td>';       									// data[8]
					echo '<td hidden>' . $prestataire['note_c4'] .'</td>';       									// data[9]
					echo '<td hidden>' . $prestataire['note_c5'] .'</td>';											// data[10]
					echo '<td hidden>' . $prestataire['note_c6'] .'</td>';											// data[11]
					echo '<td hidden>' . $prestataire['remarque'] .'</td>';											// data[12]
                    echo '<td class="filtrable">' . $prestataire['nom'] . ' ' . $prestataire['prenom'] . '</td>'; 					// data[13]
                    echo '<td>' . $prestataire['lieu'] . '</td>';													// data[14]
                    echo '<td>' . $prestataire['fonction'] . '</td>';												// data[15]
                    echo '<td><a href="mailto:' . $prestataire['email'] . '">' . $prestataire['email'] . '</td>';	// data[16]
                    echo '<td>' . $prestataire['tel'] . '</td>';													// data[17]
                    echo '<td>' . $prestataire['avis'] . '</td>';													// data[18]
                    echo '<td hidden>' . $prestataire['email'] . '</td>';											// data[19]
                    echo '<td hidden>' . $prestataire['localisation'] . '</td>';									// data[20]
                    echo '<td><meter style="height: 20px; width: 100px; vertical-align: top" min=0 max=10 low=4 high=6 optimum=7 value=' . $prestataire['note_g'] . '></meter>&nbsp;
								<span style="vertical-align: middle;" class="badge badge-info">' . number_format($prestataire['note_g'],1) . '</span></td>';
                    echo '<td>';
                    echo '<button type="button" class="view-btn btn btn-sm btn-dark mr-2 text-light" role="button"><i class="fa fa-eye"></i> Afficher</button>';
                    echo '<button type="button" class="edit-btn btn btn-sm btn-success mr-2 text-light" role="button"><i class="fa fa-pencil"></i> Modifier</button>';
					if($prestataire['avis'] == 0) {
						echo '<button type="button" class="delete-btn btn btn-sm btn-danger mr-2 text-light" role="button"><i class="fa fa-trash"></i> Supprimer</button>';
					}
                    echo '</td>';

                    echo '</tr>';
        }
        echo '</tbody>';
        echo '</table>';
        echo '</div>';
    }
?>

<!-- Page modale - Afficher prestataire -->

<div class="modal fade" id="view-modal">
   <div id="view-modal-main" class="modal-dialog modal-dialog-centered">
        <div class="modal-content">  
            <div class="modal-header text-center">Détails prestataire</div>
			<form method="post" id="form-view">
				<div class="modal-body">
					<p id="err-view" class="font-weight-bold text-danger" hidden></p>
					<input type="text" id ="id_view" name="id_view" hidden>
					<div id="detail-modal">
						<div class="small">
						<div class="row">
							<div class="col-4">
								<span>Fonction</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="fonction_view"></span>
							</div>
						</div>
						<div class="row">						
							<div class="col-4">
								<span>Nom</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="nom_view"></span>
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span>Prénom</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="prenom_view"></span>
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span>Adresse</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="adresse_view"></span>
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span>NPA + Lieu</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="npa_view"></span>&nbsp;
								<span class="text-primary" id="lieu_view"></span>							
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span>Téléphone</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="tel_view"></span>
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span>EMail</span>
							</div>
							<div class="col-8">
								<a href="" id="href_email_view"><span id="email_view"></span></a>
							</div>
						</div>
						<br/>
						<div class="row">
							<div class="col-4">
								<span>Nb. Avis publiés</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="avis_view"></span>
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span>Note globale</span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_g_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_g_view" class="badge badge-info"></span>	
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span><?php echo $criteres[0]; ?></span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_c1_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_c1_view" class="badge badge-info"></span>	
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span><?php echo $criteres[1]; ?></span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_c2_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_c2_view" class="badge badge-info"></span>	
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span><?php echo $criteres[2]; ?></span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_c3_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_c3_view" class="badge badge-info"></span>	
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span><?php echo $criteres[3]; ?></span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_c4_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_c4_view" class="badge badge-info"></span>	
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span><?php echo $criteres[4]; ?></span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_c5_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_c5_view" class="badge badge-info"></span>	
							</div>
						</div>
						<div class="row">
							<div class="col-4">
								<span><?php echo $criteres[5]; ?></span>
							</div>
							<div class="col-8">
							<meter style="height: 20px; width: 100px; vertical-align: top;" id="note_c6_view" min=0 max=10 low=4 high=6 optimum=7></meter>&nbsp;
							<span style="vertical-align: middle;"  id="text_note_c6_view" class="badge badge-info"></span>	
							</div>
						</div>
						<br/>
						<div class="row">
							<div class="col-4">
								<span>Remarques</span>
							</div>
							<div class="col-8">
								<span class="text-primary" id="remarque_view"></span>
							</div>
						</div>
					</div>
					</div>
					<div id="listeavis-modal" hidden></div>
				</div>
				<div class="modal-footer">
					<button id="btn-modal-fermer" title="Annuler" data-dismiss="modal" class="btn btn-primary mr-2">
						<i class="fa fa-close"></i> Fermer</button>
					</button>
					<button id="btn-modal-listeavis" title="Avis" class="btn btn-success mr-2">
						<i class="fa fa-thermometer"></i> Voir les avis</button>
					</button>
					<button id="btn-modal-detail" title="Detail" class="btn btn-success mr-2" hidden>
						<i class="fa fa-eye"></i> Voir le détail</button>
					</button>
				</div>
			</form>
		</div>
	</div>
</div>

<!-- Page modale - Ajouter un avis pour un prestataire -->

<div class="modal fade" id="avis-modal"> 
	<div class="modal-dialog modal-lg modal-dialog-centered">
        <div class="modal-content">
            <form id="form-avis" method="post">
                <div class="modal-header">
					<div class="text-center">Ajouter un avis pour le prestataire <b><span class="text-left" id="prestataire_avis"></span></b></div>
				</div>
                <div class="modal-body">
				    <p id="err-avis" class="font-weight-bold text-danger" hidden></p>		
                    <input type="text" id ="id_avis" name="id_avis" hidden>
					<input type="text" id ="membre_full_name_avis" name="membre_full_name_avis" value="<?php echo strtoupper($current_user->user_lastname) . ' ' . $current_user->user_lastname; ?>" hidden>
					<input type="text" id ="membre_email_avis" name="membre_email_avis" value="<?php echo $current_user->user_email; ?>" hidden>
					<div id="avis-main" class="small">						
						<div class="container bg-primary text-white text-center my-2">Veuillez indiquer vos notes (de 0 à 10)</div>
						<div class="row">
							<div class="col-4"><?php echo $criteres[0];?></div>
							<div class="col-8 row">
								<div class="col-8"><input id="note_c1_avis" name="note_c1_avis" min="0" max="10" step="1" type="range" class="form-control-range custom-range" onchange="upd_note(this.id);"></div>
								<div class="col-4"><span id="text_note_c1_avis" class="badge badge-info badge-pill"><big>5</big></span></div>
							</div>
						</div>
						<div class="row">
							<div class="col-4"><?php echo $criteres[1];?></div>
							<div class="col-8 row">
								<div class="col-8"><input id="note_c2_avis" name="note_c2_avis" min="0" max="10" step="1" type="range" class="form-control-range custom-range" onchange="upd_note(this.id);"></div>
								<div class="col-4"><span id="text_note_c2_avis" class="badge badge-info badge-pill"><big>5</big></span></div>
							</div>
	
						</div>						
						<div class="row">
							<div class="col-4"><?php echo $criteres[2];?></div>
							<div class="col-8 row">
								<div class="col-8"><input id="note_c3_avis" name="note_c3_avis" min="0" max="10" step="1" type="range" class="form-control-range custom-range" onchange="upd_note(this.id);"></div>
								<div class="col-4"><span id="text_note_c3_avis" class="badge badge-info badge-pill"><big>5</big></span></div>
							</div>

						</div>
						<div class="row">
							<div class="col-4"><?php echo $criteres[3];?></div>
							<div class="col-8 row">
								<div class="col-8"><input id="note_c4_avis" name="note_c4_avis" min="0" max="10" step="1" type="range" class="form-control-range custom-range" onchange="upd_note(this.id);"></div>
								<div class="col-4"><span id="text_note_c4_avis" class="badge badge-info badge-pill"><big>5</big></span></div>
							</div>

						</div>						
						<div class="row">
							<div class="col-4"><?php echo $criteres[4];?></div>
							<div class="col-8 row">
								<div class="col-8"><input id="note_c5_avis" name="note_c5_avis" min="0" max="10" step="1" type="range" class="form-control-range custom-range" onchange="upd_note(this.id);"></div>
								<div class="col-4"><span id="text_note_c5_avis" class="badge badge-info badge-pill"><big>5</big></span></div>
							</div>

						</div>
						<div class="row">
							<div class="col-4"><?php echo $criteres[5];?></div>
							<div class="col-8 row">
								<div class="col-8"><input id="note_c6_avis" name="note_c6_avis" min="0" max="10" step="1" type="range" class="form-control-range custom-range" onchange="upd_note(this.id);"></div>
								<div class="col-4"><span id="text_note_c6_avis" class="badge badge-info badge-pill"><big>5</big></span></div>
							</div>
	
						</div>
						<br/>
						<div class="row">
							<div class="col-4">Remarques<br/><small><i>Veuillez faire preuve d'objectivité dans vos commentaires en évitant d'être discourtois et en restant factuels</i></small></div>
							<div class="col-8">
								<textarea class="form-control" rows="4" id="remarque_avis" name="remarque_avis"></textarea>
							</div>
						</div>
						<br/>
						<div class="row">
							<div class="col-4"><small><i>A l'exception des administrateurs du site, votre identité restera cachée des autres membres si vous cochez cette case</i></small></div>
							<div class="col-8">
								<div class="form-check">
								  <label class="form-check-label">
									<input type="checkbox" class="form-check-input" value="" id="anonyme_avis" name="anonyme_avis">Avis anonyme
								  </label>
								</div>
							</div>
						</div>	
					</div>
				</div>				
				<div class="modal-footer">
					<button type="submit" id="btn-modal-avis" name="btn-modal-avis" title="Sauvegarder" class="btn btn-primary mr-2">
						<i class="fa fa-save"></i> Sauvegarder
					</button>
					<button id="btn-modal-avis-fermer" title="Annuler" data-dismiss="modal" class="btn btn-danger mr-2">
						<i class="fa fa-close"></i> Annuler
					</button>
				</div>
			</form>
		</div>
	</div>
</div>

<!-- Page modale - Editer prestataire -->

<div class="modal fade" id="edit-modal">
    <div class="modal-dialog modal-lg modal-dialog-centered">
        <div class="modal-content">  
            <form method="post" id="form-edit">
                <div class="modal-header text-center">Modifier prestataire</div>
                <div class="modal-body small">
					<p id="err-edit" class="font-weight-bold text-danger" hidden></p>	
					<input type="text" id ="id_upd" name="id_upd" hidden>
					<div class="row mb-2">
						<div class="col-2"><span>Fonction</span></div>
						<div class="col">
							<select id="fonct_id_upd" name="fonct_id_upd" class="form-control form-control-sm">
							<?php
								while($fonction = $fonctions->fetchArray(SQLITE3_ASSOC))
									{ 
									echo '<option value="' . $fonction['id'] .'">' . $fonction['fonction'] . '</option>';
									}
							?>
							</select>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Localisation</span></div>
						<div class="col">
							<select id="loc_id_upd" name="loc_id_upd" class="form-control form-control-sm">
							<?php
								while($localisation = $localisations->fetchArray(SQLITE3_ASSOC))
									{ 
									echo '<option value="' . $localisation['id'] .'">' . $localisation['localisation'] . '</option>';
									}
							?>
							</select>
						</div>
					</div>

					<div class="row mb-2">
						<div class="col-2"><span>Nom</span></div>
						<div class="col">
							<input type="text" id="nom_upd" name="nom_upd"  class="form-control form-control-sm text-uppercase">
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Prénom</span></div>
						<div class="col">
							<input type="text" id="prenom_upd" name="prenom_upd" class="form-control form-control-sm">
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Adresse</span></div>
						<div class="col">
							<input type="text" id="adresse_upd" name="adresse_upd"  class="form-control form-control-sm">
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>NPA + Lieu</span></div>
						<div class="col-2">
							<input type="text" id="npa_upd" name="npa_upd" class="form-control form-control-sm">
						</div>
						<div class="col">
							<input type="text" id="lieu_upd" name="lieu_upd" class="form-control form-control-sm">
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Téléphone</span></div>
						<div class="col">
							<input type="text" id="tel_upd" name="tel_upd" pattern="0\d{2}\s\d{7}" class="form-control form-control-sm">
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>EMail</span></div>
						<div class="col">
							<input type="email" id="email_upd" name="email_upd" class="form-control form-control-sm">
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Remarques</span></div>
						<div class="col">
							<input type="text" rows="3" id="remarque_upd" name="remarque_upd" class="form-control form-control-sm">
						</div>
					</div>
				</div>
				<div class="modal-footer">
					<button type="submit" id="btn-modal-edit" title="Sauvegarder" class="btn btn-danger mr-2"><i class="fa fa-save"></i> Sauvegarder</button>
					<button id="btn-modal-edit-fermer" title="Annuler" data-dismiss="modal" class="btn btn-primary mr-2"><i class="fa fa-close"></i> Annuler</button>
				</div>
			</form>
        </div>
    </div>
</div>

<!-- Page modale - Supprimer prestataire -->

<div class="modal fade" id="delete-modal">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <form method="post" id="form-delete">
                <div class="modal-header text-center">Supprimer prestataire</div>
                <div class="modal-body small">
					<p id="err-delete" class="font-weight-bold text-danger" hidden></p>	
					<input type="text" id ="id_del" name="id_del" hidden>
					<div class="text-center">
							Cette opération est irréversible.<br />
							Veuillez confirmer la suppression de <b><span id="nom_del"></span>&nbsp;<span id="prenom_del"></span></b>
					</div>
                </div>
                <div class="modal-footer">
                    <button type="submit"id="btn-modal-delete" title="Confirmer" class="btn btn-danger mr-2">
                        <i class="fa fa-trash"></i> Confirmer</button>
                    <button id="btn-modal-add-fermer" title="Annuler" data-dismiss="modal" class="btn btn-primary mr-2">
                        <i class="fa fa-close"></i> Annuler</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Page modale - Ajouter prestataire -->

<div class="modal fade" id="add-modal">
    <div class="modal-dialog modal-dialog-centered modal-lg">
        <div class="modal-content">
            <form id="form-add" method="post">
                <div class="modal-header text-center">Ajouter prestataire</div>
				<div class="modal-body small">
					<p id="err-add" class="font-weight-bold text-danger" hidden></p>	
					<input type="text" id ="id_add" name="id_add" hidden>
					<div class="row mb-2">
						<div class="col-2"><span>Fonction</span></div>
						<div class="col">
							<select id="fonct_id_add" name="fonct_id_add" class="form-control form-control-sm">
							<?php
								while($fonction = $fonctions->fetchArray(SQLITE3_ASSOC))
									{ 
									echo '<option value="' . $fonction['id'] .'">' . $fonction['fonction'] . '</option>';
									}
							?>
							</select>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Localisation</span></div>
						<div class="col">
							<select id="loc_id_add" name="loc_id_add" class="form-control form-control-sm">
							<?php
								while($localisation = $localisations->fetchArray(SQLITE3_ASSOC))
									{ 
									echo '<option value="' . $localisation['id'] .'">' . $localisation['localisation'] . '</option>';
									}
							?>
							</select>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Nom</span></div>
						<div class="col">
							<input type="text" id="nom_add" name="nom_add" placeholder="Veuillez entrer un nom" class="form-control form-control-sm text-uppercase" required>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Prénom</span></div>
						<div class="col">
							<input type="text" id="prenom_add" name="prenom_add"  placeholder="Veuillez entrer un prénom" class="form-control form-control-sm" required>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Adresse</span></div>
						<div class="col">
							<input type="text" id="adresse_add" name="adresse_add" placeholder="Veuillez entrer une adresse" class="form-control form-control-sm" required>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>NPA + Lieu</span></div>
						<div class="col-2">
							<input type="text" id="npa_add" name="npa_add" placeholder="NPA" class="form-control form-control-sm" required>
						</div>
						<div class="col">
							<input type="text" id="lieu_add" name="lieu_add" placeholder="Lieu" class="form-control form-control-sm" required>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Téléphone</span></div>
						<div class="col">
							<input type="text" id="tel_add" name="tel_add" pattern="0\d{2}\s\d{7}"  placeholder="Veuillez entrer un no de tel. (format 099 9999999)" class="form-control form-control-sm" required>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>EMail</span></div>
						<div class="col">
							<input type="email" id="email_add" name="email_add"  placeholder="Veuillez entrer une adresse EMail" class="form-control form-control-sm" required>
						</div>
					</div>
					<div class="row mb-2">
						<div class="col-2"><span>Remarques</span></div>
						<div class="col">
							<input type="text" rows="3" id="remarque_add" name="remarque_add"  placeholder="Veuillez entrer une remarque (facultatif)" class="form-control form-control-sm">
						</div>
					</div>
				</div>

                <div class="modal-footer">
                    <button type="submit" id="btn-modal-add" title="Sauvegarder" class="btn btn-danger mr-2"><i class="fa fa-save"></i> Sauvegarder</button>
                    <button id="btn-modal-add-fermer" title="Annuler" data-dismiss="modal" class="btn btn-primary mr-2"><i class="fa fa-close"></i> Annuler</button>
                </div>
            </form>
        </div>
    </div>
</div>

</div>
</body>
</html>
Whether you’re seeking to discover solo pleasure – Base de données MCPV "Prestataires"

Whether you’re seeking to discover solo pleasure

7 Finest Vibrators Of 2025 Lichee Pattern Leather Chest Harness, Examined And Reviewed By Sex Experts

Designed for G-spot or P-spot stimulation Leopard Bondage Collar, this modern toy is aptly named with its “discreet” minimal design. Controlled by a sole button, you’ll find a way to experiment with the vibrator’s five pleasure settings that includes totally different speeds and movement patterns to additional heighten your sexual expertise. There are 12 pleasure settings (or vibration modes) — from a low-and-slow rumble to sheet-gripping pulsations. It’s additionally waterproof and designed to unlock each the G-spot and clitoral orgasm. Read on for their suggestions of one of the best intercourse toys for each scenario, whether you’re on the lookout for a wand vibrator, a cushty pillow, entry-level butt plugs, or under-bed restraints. The Wild Flower Enby 2 (currently unavailable) is a versatile vibrator that can be used each by people with penises and different people with vulvas.

Ultimately, WH’s reviewers discovered the Womanizer Premium 2 to be the most effective and most discreet suction vibrator on the market. “The Womanizer Premium 2 is tremendous simple to make use of and intuitive, and I liked the patterns. Read on for extra info about WH’s top selections, together with everything you want to find out about looking for a vibrator—plus, skilled tips on tips on how to clear, use, and safely store your intercourse toy.

For those seeking to purchase sex toys on-line, Lovers is the proper destination. We supply a vast range of high-quality adult toys for males and other people with penises and sex toys for women and folks with vulvas, ensuring there is something for every choice, physique, and level of expertise. Whether you’re seeking to discover solo pleasure, uncover new pleasures with a companion, or spend cash on a luxury intercourse toy, our carefully curated selection ensures satisfaction. Our commitment to buyer security and satisfaction signifies that all of our sex toys online are created from body-safe supplies and are designed with user consolation in thoughts.

It’s designed to feel like an precise mouth, and you can use it on yourself. It’s additionally great for couples in which certainly one of you loves receiving but the other is not particularly eager on giving. Learn more about why this minimalist intercourse toy model will make over your nightstand. When it comes to picking a toy, the couples vibrators from We-Vibe are a versatile selection. Depending on the form and design, these are often worn or inserted. From customized strong colours & firmness choices to the best strap-on harnesses, lubes Matte Surface Aluminum Anal Plug Lichee Pattern Wrist and Ankle Cuffs Set, suction cups & even a Sample Pack to find a way to really feel it before you buy it.

The better part is that it could possibly maintain up to 330 lbs, making it a pressure to be reckoned with. Overall, the compact door swing is right for finances seekers and vacationers. Unfortunately, the stirrups are unpadded, which may go away your thighs feeling sore. If you don’t mind spending slightly extra, there are better choices just like the Screamer Dual Hook. The cellular app’s backlight saved going off, and we needed to tap the screen continually. We could not seek for a specific sample, making the expertise annoying.

Beginners should slowly “train” their rear finish, and this anal dilator set from Dr. Evan Goldstein’s model Future Method lets customers gradually enhance how a lot their derrière can take. These are also great for temperature play and because they’re waterproof, you can use them within the shower, too. It’s expensive, but when you plan on using it quite a lot of instances, then there isn’t any reason to not splurge. The unimaginable precision of the vibrations separates Hugo from the pack. To control the velocity and intensity, you merely tilt the circular remote.

Sex toys for men open the door to deeper sensations X-Men Foreskin Realistic Dong – 12 Lichee Pattern Strap on With Cock Ring And Plug Hole, better control, and more adventurous fun. You expressly agree that your linked toys or gadgets may be remotely controlled by different participants as part of the event’s interactive expertise. This open and unfettered entry to inspiration and direction allows us to gain traction on this quickly altering world.

Don’t assume for a minute that simply because we operate our business online that our customer support takes a success. We have fun your climax and will do just about anything we will to help facilitate your sexual awakening. Always keep in mind that we encourage you to achieve out to our friendly team each time you have a question, remark Male Glans Sustained Trainer Ring, or concern. As self-proclaimed sexperts, we’re well versed on all subjects in the sex style. New to the grownup intercourse toys recreation and also you need to take it a bit slower?

From strolling boots to working machines X-MEN Huge Realistic Dildo – 3.4 Dia, Priyankaa has written about tons of of merchandise and is enthusiastic about offering in-depth, unbiased evaluations. Plus, as an avid runner and gymgoer, she knows exactly what to search for when discovering the right gymwear, health tracker or earphones. Priyankaa has an MA in Magazine Journalism from Cardiff University and over 5 years’ expertise in health and fitness journalism. Priyankaa has written for Stylist’s Strong Women Training Club, where she regularly wrote about variety in the health industry, diet suggestions, training recommendation and her expertise finishing various health challenges. She has additionally written for a big selection of publications including Business Insider, Glamour Lovely Pig Tongue Clit Vibrator, Bustle, Metro, HuffPost UK, gal-dem and more. Outside of work, Priyankaa can normally be discovered making an attempt out a new fitness center class, seeking out London’s greatest eats or watching a Spanish TV show in a bid to maintain up her language abilities.

7 Finest Vibrators Of 2025 Lichee Pattern Leather Chest Harness, Examined And Reviewed By Sex Experts Designed for G-spot or P-spot stimulation Leopard Bondage Collar, this modern toy is aptly named with its “discreet” minimal design. Controlled by a sole button, you’ll find a way to experiment with the vibrator’s five pleasure settings that includes…

Leave a Reply

Your email address will not be published. Required fields are marked *