Créer un bouton qui permet le téléchargement de plusieurs fichiers cochés.

Eléphant du PHP | 161 Messages

19 juin 2015, 10:38

J'essaie et je te dis ce qu'il en est.

Eléphant du PHP | 161 Messages

19 juin 2015, 10:43

En fait pour l'instant ça va juste me permettre d'afficher les checkboxs sélectionnés, et pour les télécharger comment je fais ?
(Pour le code je l'étudie et essaye de le mettre en place).

Eléphant du PHP | 88 Messages

19 juin 2015, 10:48

C'est la que monsieur javascript reintervient :D
<?php
$array = array( //ce tableau liste tout les documents et leurs liens
	'0'=>array('nom_du_doc' => 'doc1',
				'lien_du_doc' => 'http://.../1'),
    '1'=>array('nom_du_doc' => 'doc2',
				'lien_du_doc' => 'http://.../2'),
    '2'=>array('nom_du_doc' => 'doc3',
				'lien_du_doc' => 'http://.../3'),
    '3'=>array('nom_du_doc' => 'doc4',
				'lien_du_doc' => 'http://.../4')
    );
for ($i=0; $i < count($array); $i++) {
	if (isset($_POST[$array[$i]['nom_du_doc']])) {
		// Tu le stoque dans un variable pour dire qu'il a bien était cocher
		// Ou tu va directement le chercher via un lien
		// là juste j'affiche le lien
		echo "<script>
			function redir(url){
			window.open(url, '_blank');
			}
			redir('".$array[$i]['lien_du_doc']."');
			</script>";
	}
	else {	}
}
?>
	<form action="" method="post">
<?php		
		for ($i=0; $i < count($array); $i++) {
			echo '<input type="checkbox" name="'.$array[$i]['nom_du_doc'].'"/>
			<label for="'.$array[$i]['nom_du_doc'].'">: '.$array[$i]['nom_du_doc'].'</label><br/>';
		}
?>
		<input type="submit">
	</form>
Et la ça ouvre directement les document dans un nouvel onglet et du coup ça les télécharge
Le temps donne sa légitimité à l'existence...

Eléphant du PHP | 161 Messages

19 juin 2015, 10:58

Quand vérifient-t-on un click sur le bouton dans ton script ?

Eléphant du PHP | 161 Messages

19 juin 2015, 11:00

Et bien sur, ici je remplace url par le lien de mon fichier ?

Code : Tout sélectionner

echo "<script> function redir(url){ window.open(url, '_blank'); } redir('".$array[$i]['lien_du_doc']."'); </script>";

Eléphant du PHP | 161 Messages

19 juin 2015, 11:04

Qu'est ce qui cloche ? Mon bouton envoyer qui n'est pas dans le formulaire ? Ou est-ce parce que je n'ai stocké de variable pour dire qu'il était bien coché ?

Donc voici mon code :

Code : Tout sélectionner

<?php $array = array( //ce tableau liste tout les documents et leurs liens '0'=>array('nom_du_doc' => '$element["nom.extension"]', 'lien_du_doc' => '$repertoire_courant."/".$element["nom.extension"]'), ); for ($i=0; $i < count($array); $i++) { if (isset($_POST[$array[$i]['nom_du_doc']])) { // Tu le stoque dans un variable pour dire qu'il a bien était cocher // Ou tu va directement le chercher via un lien // là juste j'affiche le lien echo "<script> function redir(url){ window.open(url, '_blank'); } redir('".$array[$i]['lien_du_doc']."'); </script>"; } else { } } ?>
Et mon form :

Code : Tout sélectionner

<form action="" method="post"> <?php for ($i=0; $i < count($array); $i++) { echo '<input type="checkbox" name="'.$element['nom.extension'].'"/> <label for="'.$element['nom.extension'].'">: '.$element['nom.extension'].'</label><br/>'; } ?> </form>

Eléphant du PHP | 161 Messages

19 juin 2015, 11:05

Je suis près du but, il ne me manque plus que quelques détails je pense.

Eléphant du PHP | 88 Messages

19 juin 2015, 11:13

Il faut imperativement que ton bouton envoyer soit dans ton formulaire !!! Sinon ça n'envoie pas les données du formulaire en question ;)
Le temps donne sa légitimité à l'existence...

Eléphant du PHP | 161 Messages

19 juin 2015, 11:16

Mais en ce qu'il concerne ma variable alors ?
Tu m'as dis : "Tu le stoque dans un variable pour dire qu'il a bien était cocher ou tu va directement le chercher via un lien"
Il me semble que pour l'exemple tu as choisis le lien.. As-tu un exemple du rendu pour voir si ça correspond à ce que je fais ?

Eléphant du PHP | 88 Messages

19 juin 2015, 11:18

Là je te met des sites pour les liens mais toi tu dois mettre le chemin absolu de tes documents ;)
<?php
$array = array( //ce tableau liste tout les documents et leurs liens
	'0'=>array('nom_du_doc' => 'doc1',
				'lien_du_doc' => 'http://www.google.fr'),
    '1'=>array('nom_du_doc' => 'doc2',
				'lien_du_doc' => 'http://www.facebook.com'),
    '2'=>array('nom_du_doc' => 'doc3',
				'lien_du_doc' => 'http://www.portailgeek.meximas.com'),
    '3'=>array('nom_du_doc' => 'doc4',
				'lien_du_doc' => 'http://www.cpasbien.pw')
    );
for ($i=0; $i < count($array); $i++) {
	if (isset($_POST[$array[$i]['nom_du_doc']])) {
		// ça redirige directement vers le lien
		echo "<script>
			function redir(url){
			window.open(url, '_blank');
			}
			redir('".$array[$i]['lien_du_doc']."');
			</script>";
	}
	else {	}
}
?>
	<form action="" method="post">
<?php		
		for ($i=0; $i < count($array); $i++) {
			echo '<input type="checkbox" name="'.$array[$i]['nom_du_doc'].'"/>
			<label for="'.$array[$i]['nom_du_doc'].'">: '.$array[$i]['nom_du_doc'].'</label><br/>';
		}
?>
		<input type="submit">
	</form>
Le temps donne sa légitimité à l'existence...

Eléphant du PHP | 161 Messages

19 juin 2015, 11:20

J'ai remis le bouton submit comme tu m'as dis et ça ne change rien. ça envoie nul part... Voici mon code.

Code : Tout sélectionner

<form action="" method="post"> <?php for ($i=0; $i < count($array); $i++) { echo '<input type="checkbox" name="'.$element['nom.extension'].'"/> <label for="'.$element['nom.extension'].'">: '.$element['nom.extension'].'</label><br/>'; } ?> <input type="submit"> </form>

Code : Tout sélectionner

<?php $array = array( //ce tableau liste tout les documents et leurs liens '0'=>array('nom_du_doc' => '$element["nom.extension"]', 'lien_du_doc' => 'rawurlencode($repertoire_courant."/".$element["nom.extension"]), "&orderby=nom&order=", $order'), ); for ($i=0; $i < count($array); $i++) { if (isset($_POST[$array[$i]['nom_du_doc']])) { $mavariablephp =($_POST[$array[$i]['nom_du_doc']]); // Ou tu va directement le chercher via un lien // là juste j'affiche le lien echo "<script> function redir(url){ window.open(url, '_blank'); } redir('".$array[$i]['lien_du_doc']."'); </script>"; } else { } } ?>

Eléphant du PHP | 88 Messages

19 juin 2015, 11:28

Je pense qu'il y a une erreur dans le lien que tu met dans le tableau !
Pourquoi tu créé une variable $mavariablephp ça sert a rien ici ?!?
Le temps donne sa légitimité à l'existence...

Eléphant du PHP | 161 Messages

19 juin 2015, 11:35

Oui je viens de supprimer je n'avais pas fais attention. Merci.

Si j'ai bien compris, l'erreur vient du chemin, soit du lien du document, mais comme je l'ai répété, tous mes fichiers sont compris dans le dossier documents de mon site, et mon tuteur pourra y supprimer ou y ajouter des documents comme bon lui semble. Donc si j'associe un lien précis à un document précis, si peu que ce document soit supprimé, ça générera un problème.

Mais admettons, si je mets un bon lien, as-tu une idée de ce qu'il va se passer ? Une fenêtre ordinaire de téléchargement forcé va donc s'afficher et demander : "Voulez-vous télécharger ces fichiers ?" ?

Eléphant du PHP | 88 Messages

19 juin 2015, 11:39

Normalement oui.
Mais c'est pas a toi de faire la liste des documents :/
Tu récupéré la liste des documents via sql je suppose non ??? Si oui, tu fais :
while ($tab = $query->fetch()){
					$array[]=$tab;
 // ici $query c'est la requete qui récupère le nom et le lien de tout les fichiers
					}
Le temps donne sa légitimité à l'existence...

Eléphant du PHP | 161 Messages

19 juin 2015, 11:41

Non non, je n'ai pas de base de donnée, et j'essaie d'insister dessus depuis le début. Tous mes fichiers sont dans documents dans mon le dossier Kinebox. (le dossier de mon site)