5542 sujets

Sémantique web et HTML

Bonjour à tous,
Je suis confrontée à un problème insoluble (pour moi).

Je dispose de deux formulaires :
- le 1er envoie des informations sur la base de données et les restitue bien en front
- le 2nd est un formulaire test pour envoi des résultats des checkbox

Je ne parviens pas à intégrer mes résultats de checkbox à mon premier formulaire.

Formulaire 1 :

<?php
include '../lib/includes.php';

/**
* La Sauvegarde
**/
if(isset($_POST['name']) && isset($_POST['slug'])){
	checkCsrf();
	$slug = $_POST['slug'];
	if(preg_match('/^[a-z\-0-9]+$/', $slug)){
		$name = $db->quote($_POST['name']); 
		$slug = $db->quote($_POST['slug']);
		$theme_id = $db->quote($_POST['theme_id']);
		$datepicker = $db->quote($_POST['datepicker']);
		$content = $db->quote($_POST['content']);
		

		/**
		* SAUVEGARDE DE LA REALISATION
		**/

		if(isset($_GET['id'])){
			$id = $db->quote($_GET['id']);
			$db->query("UPDATE soirees SET name=$name, slug=$slug, theme_id=$theme_id, datepicker=$datepicker, content=$content WHERE id=$id");
		}else{
			$db->query("INSERT INTO soirees SET name=$name, slug=$slug, theme_id=$theme_id, datepicker=$datepicker, content=$content");
			$_GET['id'] = $db->lastInsertId();
		}
		setFlash('La soirée a bien été ajoutée.');

		/**
		* ENVOI DES IMAGES
		**/
		$soiree_id = $db->quote($_GET['id']);
		$files = $_FILES['visuels'];
		$visuels = array();
		require '../lib/image.php';
		foreach($files['tmp_name'] as $k => $v){
			$visuel = array(
				'name' => $files['name'][$k],
				'tmp_name' => $files['tmp_name'][$k]
				);
		$extension = pathinfo($visuel['name'], PATHINFO_EXTENSION);
		if(in_array($extension, array('jpg','png','jpeg','gif'))){
			$db->query("INSERT INTO visuels SET soiree_id=$soiree_id");
			$visuel_id = $db->lastInsertId();
			$visuel_name = $visuel_id . '.' . $extension;
			move_uploaded_file($visuel['tmp_name'], IMAGES . '/soirees/' . $visuel_name);
			resizeImage(IMAGES . '/soirees/' . $visuel_name, 210,124);
			$visuel_name = $db->quote($visuel_name);
			$db->query("UPDATE visuels SET name=$visuel_name WHERE id = $visuel_id");
			$db->query("UPDATE soirees SET visuel_id=$visuel_id WHERE id = $soiree_id");
			}
		}
		header('Location:soiree_edit.php');
		die();
	}else{
		setFlash('Slug non-valide', 'danger');
	}
}

/**
* On récupère une réalisation
**/
if(isset($_GET['id'])){
	$id = $db->quote($_GET['id']);
	$select = $db->query("SELECT * FROM soirees WHERE id=$id");
	if($select->rowCount() == 0){
		setFlash("Il n'y a pas de soirée avec cet ID", "danger");
		header('Location:soiree_edit.php');
		die();
	}
	$_POST = $select->fetch();
}

/**
* Suppression d'une image
**/
if(isset($_GET['delete_visuel'])){
	checkCsrf();
	$id = $db->quote($_GET['delete_visuel']);
	$select = $db->query("SELECT name, soiree_id FROM visuels WHERE id=$id");
	$visuel = $select->fetch();
	$visuels=glob(IMAGES . '/soirees/' . pathinfo($visuel['name'], PATHINFO_BASENAME) . '_*x*.*');
	if(is_array($visuels)){
		foreach($visuels as $v){
			unlink($v);
		}
	}
	unlink(IMAGES . '/soirees/' . $visuel['name']);
	$db->query("DELETE FROM visuels WHERE id=$id");
	setFlash("L'image a bien été supprimée.");
	header('Location:work_edit.php?id=' . $visuel['soiree_id']);
	die();
}

/**
* On récupère la liste des thèmes
**/
$select = $db->query('SELECT id, name FROM themes ORDER BY name ASC');
$themes = $select->fetchAll();
$themes_list = array();
foreach($themes as $theme){
	$themes_list[$theme['id']] = $theme['name'];
}

/**
* On récupère la liste des tarifs
**/
$select = $db->query('SELECT id, name FROM tarifs');
$tarifs = $select->fetchAll();
$tarifs_list = array();
foreach($tarifs as $tarif){
	$tarifs_list[$tarif['id']] = $tarif['name'];
}

/**
*On récupère la liste des images
**/

if(isset($_GET['id'])){
	$soiree_id = $db->quote($_GET['id']);
	$select = $db->query("SELECT id, name FROM visuels WHERE soiree_id=$soiree_id");
	$visuels = $select->fetchAll();
}else{
	$visuels = array();
}

include '../partials/admin_header.php';

?>

<DOCTYPE html>
<head>
	<link rel="stylesheet" href="../css/Aristo/Aristo.css">
</head>
<body>

<h1><font color="#3498db">Editer une soirée</font></h1>
<div class="row">
	<div class="col-sm-8">

		<form action="#" method="post" enctype="multipart/form-data">
			<div class="form-group">
				<label for="name">Nom de la soirée :</label>
				<?= input("name"); ?>
			</div>
			<div class="form-group">
				<label for="slug">URL de la soirée :</label>
				<?= input("slug"); ?>
			</div>
			<div class="form-group">
				<label for="theme_id">Thème :</label>
				<?= select("theme_id", $themes_list); ?>
			</div>
			<div class="form-group">
				<label for="">Date de la soirée :</label>
				<input type="text" id="datepicker" class="datepicker" name="datepicker">
			</div>
			<div class="form-group">
				<label for="content">Contenu de la soirée :</label>
				<?= textarea("content"); ?>
			</div>
			<?= csrfInput(); ?>
			<div class="form-group">
				<label for="tarif">Tarif :
				<div class="checkbox">
					<?php foreach ($tarifs as $k =>$tarif): ?>
						<?php echo'<input type="checkbox" name="checkbox[]" value="'.$tarif['id'].'" />'.$tarif['name'].'
						<br />'; ?>
					<?php endforeach ?>
				</div></label>
  			</div>			
			<div class="form-group">
				<label for="visuel">Définir une image :</label>
				<input type="file" name="visuels[]">
				<input type="file" name="visuels[]" class="hidden" id="duplicate">
			</div>
						
			<button type="submit" class="btn btn-default">Enregistrer</button>
		</form>

	</div>

	<div class="col-sm-4">
		<?php foreach ($visuels as $k => $visuel): ?>
			<p>
				<img src="<?= WEBROOT; ?>img/soirees/<?= $visuel['name']; ?>" width="100"><a href="?delete_visuel=<?= $visuel['id']; ?>&<?= csrf(); ?>" onclick="return confirm('Etes-vous sûr de vouloir supprimer l'image ?');">Supprimer</a>
			</p>
		<?php endforeach ?>
		<?php
		    if (!empty($_POST)) {
		        echo '<pre>'.print_r($_POST,true).'</pre>';
		    }
		?>
	</div>
</div>




</body>
</html>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="../js/jquery-1.9.1.js"></script>
    <!-- Load jQuery UI Main JS  -->
    <script src="../js/1.10.3/jquery-ui.js"></script>
<script src="../js/jquery.ui.js"></script>
<script src="../js/jquery-ui.js"></script>
<script src="../js/main.js"></script>





<?php ob_start(); ?>
<script src="<?= WEBROOT; ?>js/tinymce/tinymce.min.js"></script>
<script>
(function($){
	$('#duplicatebtn').click(function(e){
		e.preventDefault();
		var $clone = $('#duplicate').clone().attr('id', '').removeClass('hidden');
		$('#duplicate').before($clone);
	})
})(jQuery);
		tinyMCE.init({
        		// General options
        		mode : "textareas",
		});
	</script>
<?php $script = ob_get_clean(); ?>


    <script>
  
  /* This is the function that will get executed after the DOM is fully loaded */
  function () {
    $( "#datepicker" ).datepicker({
      changeMonth: true,//this option for allowing user to select month
      changeYear: true //this option for allowing user to select from year range
    });
  }
 
);</script>

<script type="text/javascript">

   document.getElementsByName("'.$tarif['id'].'")[].checked = true;
   
</script>
</script>

<?php include '../partials/footer.php'; ?>


Formulaire 2 :
		<?php

ini_set('display_errors',1);

include '../lib/includes.php';

		/**
		* ENVOI DES IMAGES
		**/
		if(isset($_GET['id'])){
		$soiree_id = $db->quote($_GET['id']);
		$files = $_FILES['visuels'];
		$visuels = array();
		require '../lib/image.php';
		foreach($files['tmp_name'] as $k => $v){
			$visuel = array(
				'name' => $files['name'][$k],
				'tmp_name' => $files['tmp_name'][$k]
				);
		$extension = pathinfo($visuel['name'], PATHINFO_EXTENSION);
		if(in_array($extension, array('jpg','png'))){
			$db->query("INSERT INTO visuels SET soiree_id=$soiree_id");
			$visuel_id = $db->lastInsertId();
			$visuel_name = $visuel_id . '.' . $extension;
			move_uploaded_file($visuel['tmp_name'], IMAGES . '/soirees/' . $visuel_name);
			resizeImage(IMAGES . '/soirees/' . $visuel_name, 150,150);
			$visuel_name = $db->quote($visuel_name);
			$db->query("UPDATE visuels SET name=$visuel_name WHERE id = $visuel_id");
			$db->query("UPDATE soirees SET visuel_id=$visuel_id WHERE id = $soiree_id");
			}
		}
		header('Location:soiree.php');
		die();
	}else{
		setFlash('Slug non-valide', 'danger');
	}
//}
//}
/**
* On récupère une réalisation
**/
if(isset($_GET['id'])){
	$id = $db->quote($_GET['id']);
	$select = $db->query("SELECT * FROM soirees WHERE id=$id");
	if($select->rowCount() == 0){
		setFlash("Il n'y a pas de soirée avec cet ID", "danger");
		header('Location:soiree.php');
		die();
	}
	$_POST = $select->fetch();
}

/**
* On récupère la liste des thèmes
**/
$select = $db->query('SELECT id, name FROM themes ORDER BY name ASC');
$themes = $select->fetchAll();
$themes_list = array();
foreach($themes as $theme){
	$themes_list[$theme['id']] = $theme['name'];
}

/**
* On récupère la liste des tarifs
**/
$select = $db->query('SELECT id, name FROM tarifs');
$tarifs = $select->fetchAll();
$tarifs_list = array();
foreach($tarifs as $tarif){
	$tarifs_list[$tarif['id']] = $tarif['name'];

}

/**
*RECUPERATION DONNEES CHECKBOX POUR ENVOI MYSQL
**/
if(!empty($_POST['checkbox'])){
	$sql=implode(',',$_POST["checkbox"]);
	//$db->query("UPDATE soirees SET tarif_id='".$sql."'") ;
	}

include '../partials/admin_header.php';

?>

<DOCTYPE html>
<head>
	<link rel="stylesheet" href="../css/Aristo/Aristo.css">
</head>
<body>

<h1>Editer une soirée</h1>
<div class="row">
	<div class="col-sm-8">

		<form action="soiree_edit_checkbox2.php" method="post" enctype="multipart/form-data">
			<div class="form-group">
				<label for="name">Nom de la soirée :</label>
				<?= input("name"); ?>
				
			</div>
			<div class="form-group">
				<label for="theme_id">Thème :</label>
				<?= select("theme_id", $themes_list); ?>

			</div>
			<div class="form-group">
				<label for="">Date de la soirée :</label>
				<input type="text" id="datepicker" class="datepicker" name="datepicker">

			</div>
			<div class="form-group">
				<label for="content">Contenu de la soirée :</label>
				<?= textarea("content"); ?>

			</div>
			<?= csrfInput(); ?>
			<div class="form-group">
					<label for="tarif">Tarif :	</label>			
				<div class="checkbox">
					<?php foreach ($tarifs as $k =>$tarif): ?>
						<?php echo'<input type="checkbox" name="checkbox[]" value="'.$tarif['id'].'" />'.$tarif['name'].'
						<br />'; ?>
					<?php endforeach ?>
				</div>
  			</div>			
					
			<button type="submit" class="btn btn-default">Enregistrer</button>
		</form>

	</div>

	<div class="col-sm-4">
		
		<?php
    if (!empty($_POST)) {
        echo '<pre>'.print_r($_POST,true).'</pre>';

    }
?>
	</div>
</div>

<?php
	if(!empty($_POST['name'])){
		$name = $db->quote($_POST['name']);
		$theme_id = $db->quote($_POST['theme_id']);
		$datepicker = $db->quote($_POST['datepicker']);
		$content = $db->quote($_POST['content']);
		$db->query("INSERT INTO soirees SET name=$name, theme_id=$theme_id, datepicker=$datepicker, content=$content, tarif_id='".$sql."'");

						}
						?>
														
</body>
</html>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="../js/jquery-1.9.1.js"></script>
    <!-- Load jQuery UI Main JS  -->
    <script src="../js/1.10.3/jquery-ui.js"></script>
<script src="../js/jquery.ui.js"></script>
<script src="../js/jquery-ui.js"></script>
<script src="../js/main.js"></script>

<?php ob_start(); ?>
<script src="<?= WEBROOT; ?>js/tinymce/tinymce.min.js"></script>
<script>
(function($){
	$('#duplicatebtn').click(function(e){
		e.preventDefault();
		var $clone = $('#duplicate').clone().attr('id', '').removeClass('hidden');
		$('#duplicate').before($clone);
	})
})(jQuery);
		tinyMCE.init({
        		// General options
        		mode : "textareas",
		});
	</script>
<?php $script = ob_get_clean(); ?>


    <script>
  
  /* This is the function that will get executed after the DOM is fully loaded */
  function () {
    $( "#datepicker" ).datepicker({
      changeMonth: true,//this option for allowing user to select month
      changeYear: true //this option for allowing user to select from year range
    });
  }
 
);</script>

<?php include '../partials/footer.php'; ?>


Pouvez-vous me dire comment vous feriez pour que les résultats de la checkbox s'intègrent dans la bdd ?

Je vous remercie par avance.

Cordialement,

Cynthia
Modérateur
Salut,

Au pssage, ta requête sql est incomplète, sinon tu risques de te retrouver avec une table aux données un peu loufoques....


UPDATE 
	soirees 
SET 
	tarif_id='".$sql."'
WHERE 
	id = 1

Modifié par niuxe (18 Nov 2015 - 23:19)