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>
In an essay revealed within the guide Mothers Who Think – Base de données MCPV "Prestataires"

In an essay revealed within the guide Mothers Who Think

Us’s Best Online Adult Store And Intercourse Toy Shop

The Rechargeable mannequin includes a softer, smoother silicone head, which is much easier to wash and should feel more snug against the body. Nonporous and less susceptible to discoloration, the Rechargeable model’s silicone head eliminates any earlier issues about phthalates, a plasticizer within the Original version’s vinyl head. Virtually all of our testers reported that the Magic Wand was the one toy in our take a look at group that might persistently convey them to an intense climax rapidly, intuitively, successfully removable diamond anal plug, and predictably. In an essay revealed within the guide Mothers Who Think, intercourse skilled Susie Bright calls the Magic Wand a “miracle” because its power enables many customers to have an orgasm within 60 seconds. Multiple educational analysis studies have found that prescribing the Magic Wand is doubtless certainly one of the handiest therapies for ladies who battle with continual anorgasmia, or the inability to achieve orgasm. Autistic activist Ruby Stone emphasized in our interview that sensory-processing points may cause certain sounds extension sleeve, textures, or different stimuli to really feel extraordinarily disagreeable.

“This male masturbator offers focused stimulation to the frenulum, which is a really sensitive area situated on the underside of the penis the place the pinnacle and shaft meet,” says Lehmiller. Described as a pleasure air stroker, as soon as your penis is inside the Ion vibrating glans penis extender, the toy makes use of air stimulation cosplay bondage kit 8 pcs, much in the identical means that clit suction toys do. “The pulsating airwaves supply a unique method of stimulating pleasure receptors that you just won’t find with other toys,” he says.

However, the anus and rectum are delicate mucous membranes that are extremely absorptive and prone to irritation, and many people use their toys more incessantly than 15 minutes per week. For this cause, we decided to err on the facet of warning and choose toys made from high-quality, nonporous materials for this information. If you favor gentler, pinpointed stimulation, the Lelo Dot may be the solely option for you. The teardrop-shaped Dot appears a bit odd at first glance, but its accessible design provides centered clitoral stimulation.

The vibrations are shockingly strong for something this small, and unlike other bullet vibes, it doesn’t numb your hand before you even get to the good part. It’s simple to wash and comes with two stimulator heads to ensure it’s a snug match. Plus, it is soft to the touch, and coated in silicone without any dangerous phthalates, latex, or BPA.

If you are a newbie to the world of sex toy websites, the list of classes to shop from is often a bit overwhelming. At LOVETOY, we believe that everybody deserves the best to explore their sexuality and find happiness in their own method. If you get pleasure from a rabbit vibrator, look to Lovehoney’s revolutionary Glow Bunny and if associate play is on the playing cards, then we would recommend the Lovense Lush Love Egg Vibrator. Of course, cleaning protocols range relying on material and waterproofing capabilities. Consult the consumer handbook that got here together with your device or search for directions online.

Discover the Romp Wave Mint, a modern and innovative lay-on vibrator designed to ship wave after wave of unforgettable pleasure. Lion’s Den loves to help spread sex-positive, sexual well being and wellness education and consciousness. Tell us about your event, program, sponsorship alternative or cause, and let’s work together to normalize the dialog. Since 2021 trunk ball cock sleeve, Pleasing has been creating unisex products like nail polish, skin care, and clothes battlegear penis extension, and now will continue to develop products within the sexual-wellness class.

Lovehoney’s stock and website is knowledgeable by the help of consultants, including professors, sexologists, psychologists, and kink-informed educators. Complete with distant control and vibrating motors in its tip and base vibrating glans wolftooth penis sleeve, the Lelo Hugo is a clean, medium-size prostate massager that leads to large-size orgasms. It’s a favourite of Adina Mahalli, MSW battlegear vibrating cock sleeve, relationship expert, and women’s health specialist at Maple Holistics, who beforehand noted to SELF that the Hugo makes a wonderful toy for girls to attempt too. Prostate massagers can additionally be used alone if you’ve not explored your prostrate, but Frye-Nekrasova says they also work well with companions, as do vibrating cock rings and butt plugs.

As nicely as being a mouthful (the name battlegear vibrating penis sleeve, not the sex toy. Wrong end) the Come Together Vibrator Designed For Him With Her in Mind is probably considered one of the highest high quality male intercourse toys. This male sex toy isn’t for beginners, offering vibration overloads to 3 different components of your prostate. Feel like you’re riding an earthquake with this deceivingly easy, but(t) efficient male sex toy. The onahole’s lifelike look is ideal for individuals who favor anatomically correct intercourse toys. We appreciated the material variation as a outcome of it amplified the raw facet of the stroking action.

Us’s Best Online Adult Store And Intercourse Toy Shop The Rechargeable mannequin includes a softer, smoother silicone head, which is much easier to wash and should feel more snug against the body. Nonporous and less susceptible to discoloration, the Rechargeable model’s silicone head eliminates any earlier issues about phthalates, a plasticizer within the Original version’s…

Leave a Reply

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