IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Cases à cocher multiples et ajout au zip pour télécharger la sélection (php, Javascript)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Par défaut Cases à cocher multiples et ajout au zip pour télécharger la sélection (php, Javascript)
    Bonjour,

    complètement débutante en javascript je me suis aventurée dans un petit projet mais je suis coincée.
    Après avoir sélectionné mes fichiers par cases à cocher, je veux les ajouter au zip et télécharger ce dernier.

    Je n'arrive pas à faire passer mes sélections dans le fichier zip. Avant, j'avais nommé mes cases à cocher avec des crochets et je les récupérait bien. Mais là impossible : dès que je mets des crochets il me met colle une erreur. Du coup, comment faire ? Quelque chose m'échappe mais je ne vois pas quoi... Si quelqu'un pouvait m'éclairer pour ajouter mes sélections au zip il me serait d'une très grande aide. J'ai dans une page php mes cases à cocher, dans une autre le html qui les affiche et ma fonction addzip dans un fichier javascript.

    Tout fonctionne sauf l'insertion des fichiers au zip.

    Merci d'avance pour votre aide précieuse car là je patauge...

  2. #2
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Par défaut
    En gros, j'ai mon fichier.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    ...
    				$i=count($files); // Ajout par VL le 29/05/2015
    	        	if ($file != "." && $file != ".." && $file != "folder.jpg")
    		  		{
     
    		  			// JPG, GIF and PNG
    		  			if (preg_match("/.jpg$|.gif$|.png$/i", $file))
    		  			{
     
    						//Read EXIF
    						if ($display_exif == 1) $img_captions[$file] .= readEXIF($currentdir . "/" . $file);
     
    						checkpermissions($currentdir . "/" . $file);
    						$album=ltrim($_GET['dir']); // Ajout par VL
     
    						$files[] = array (
    			  				"name" => $file,
    							"date" => filemtime($currentdir . "/" . $file),
    							"size" => filesize($currentdir . "/" . $file),
    				  			"html" =>  "<li>
    											<a href='" . $currentdir . "/" . $file . "' rel='lightbox[billeder]' title='$img_captions[$file]'><span>toto :$album ou $album$i</span>
    											<img src='" . GALLERY_ROOT . "createthumb.php?filename=" . $thumbdir . "/" . $file . "&amp;size=$thumb_size' alt='$label_loading' title='$file'/></a>
    											$file <input type='checkbox' name='$album' id='$album' value='$i'> <br />
    										</li>");
    		  			}
    ...
    Dans mon fichier html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <form method="POST" name="monform" id="monform" action="zip.php"> 
     
    	Pour tout sélectionner / désélectionner, cochez cette case <input type="checkbox" id="checkall"/>
     
    		<div id="container">
    			<ul class="gallery">
    				<% thumbnails %>
    			</ul>
    			</br>
     
    		</div>
     
    		<input type="submit" name='Telecharger' value='Télécharger la selection'> 
    		<!-- J'ai changé par une page zip.php mais avant j'avais ce bouton : <input type='button' name='Ajouter' value='Ajouter au zip' onClick='addzip();'>-->
    </form>

    Et mon addzip.js :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    // On instancie la classe.
        $zip = new ZipArchive();
     
    	if(is_dir('upload/')) 
    	{ 
            // On teste si le dossier existe, car sans ça le script risque de provoquer des erreurs.
     
            if(($zip->open('Archive.zip', ZipArchive::CREATE)) == TRUE)
    		{
    		  // Ouverture de l’archive réussie.
     
     
    		  // On enlève . et .. qui représentent le dossier courant et le dossier parent.
    		  unset($fichiers[0], $fichiers[1]);
     
    		 foreach($fichiers as $f)  //foreach($post['$album$i'] as $file)
    		  {
    			// On ajoute chaque fichier à l’archive en spécifiant l’argument optionnel.
    			// Pour ne pas créer de dossier dans l’archive.
     
    			if(!$zip->addFile('upload/'.$f, $f))
    			{
    			  echo 'Impossible d'ajouter &quot;'.$f.'&quot;.<br/>';
    			}
    		  }
     
    		  // On ferme l’archive.
    		  $zip->close();
     
    		// A FAIRE PLUS TARD 
    		  // On peut ensuite, comme dans le tuto de DHKold, proposer le téléchargement.
    		  header('Content-Transfer-Encoding: binary'); //Transfert en binaire (fichier).
    		  header('Content-Disposition: attachment; filename="Archive.zip"'); //Nom du fichier.
    		  header('Content-Length: '.filesize('Archive.zip')); //Taille du fichier.
     
    		  readfile('Archive.zip');
    		}
    		else
    		{
    		  // Erreur lors de l’ouverture.
    		  // On peut ajouter du code ici pour gérer les différentes erreurs.
    		  echo 'Erreur, impossible de créer l'archive.';
    		}
    		 /* }
    		  else
    		  {
    			// Possibilité de créer le dossier avec mkdir().
    			echo 'Le dossier &quot;upload/&quot; n'existe pas.';
    		  } */
     
    		  parent.fb.end();
    	}

    Si vous aviez une idée...

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 98
    Par défaut
    bonjour,

    Peux tu préciser l'erreur que tu as ?

  4. #4
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Par défaut
    Merci de prendre un peu de temps pour m'aider.
    Alors, en fait, là je n'ai plus d'erreur en rapport avec les crochets du name de mes checkbox depuis que je l'ai modifié en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type='checkbox' name=$album'[]' id='$album$i' value='$i'>
    Par contre, je n'arrive toujours pas à récupérer mes dans mon zip
    Si tu as une idée de mon (mes) erreur(s).
    Merci encore.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Par défaut
    Quelqu'un aurait-il un exemple svp ?
    Merci d'avance.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 98
    Par défaut
    Bonjour,

    Dans ton fichier HTML tu as enlevé l'évènement onclick du button. C'est lui qui appelait la fonction javascript addzip().
    Et qui sans doute (tu n'as pas montré la fin de ton code javascript) envoyait le formulaire à ta page php.

    En rajoutant un bouton submit tu court-circuites l'appel de ton script javascript.

Discussions similaires

  1. [MySQL] update de cases à cocher multiples qui ne fonctionne pas
    Par mimosa21 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 09/12/2012, 11h28
  2. [OpenOffice][Base de données] Cases à cocher multiples
    Par Igrasil dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 28/02/2012, 12h26
  3. Génération de cases à cocher multiples
    Par bastien dans le forum Langage
    Réponses: 1
    Dernier message: 02/04/2009, 21h16
  4. Excel97: cases à cocher multiples
    Par paflolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/10/2006, 16h41
  5. modifier champ texte en cases à cocher multiples
    Par gator dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2006, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo