[PHP- JS] affichage répertoire dans liste box
Résolu
-CCM-
Messages postés
927
Date d'inscription
Statut
Membre
Dernière intervention
-
-CCM- Messages postés 927 Date d'inscription Statut Membre Dernière intervention -
-CCM- Messages postés 927 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veut faire un formulaire particulier, mais je but sur une partie très complexe et compliqué à la fois ....
Voici ce que je veut faire :
1. -------> choix d'une valeur dans ma listeboxA. (nom d'un répertoire, inscrit en dur dans le code)
2. -------> Ma listeboxB se charge automatiquement de valeurs en fonction de listboxA
3. Les valeurs de la listboxB sont variables et representent des répertoires contenus dans le dossier indiqué dans listboxA
Le 1 et 2 je sais faire, maintenant il faut que j'essai d'imbriqué une fonction de listage de répertoire dans ma fonction d'affichage de valeur !!!! soit imbriquer 3 dans 2.
Je ne sais pas faire ça, par contre je veu bien apprendre :)
Voici en gros mon code :
body
<SELECT id=listeA onchange=changeliste() name=listeA >
<OPTION value=0 selected></OPTION>
<OPTION value=1> rep1 </OPTION>
<OPTION value=2> rep2 </OPTION>
<OPTION value=3> rep3 </OPTION>
<OPTION value=4> rep4 </OPTION>
<OPTION value=5> rep5 </OPTION>
<OPTION value=6> rep6 </OPTION>
</SELECT>
<br/>
<br/>
<label for="dossier">Dossier :</label>
<br/>
<A id=listeB_div><SELECT id=listeB name=listeB></SELECT></A>
Sa marche très bien si les valeur "dossier1" "dossier2" "dossier4254" .... sont en dur, mais moi je veut que ces valeur soit dynamique en fonction des repertoires contenus dans rep1 rep2 rep3 ....
C'est faisable ??
Un petit coups de pouce svp ..
Merci a vous
Je veut faire un formulaire particulier, mais je but sur une partie très complexe et compliqué à la fois ....
Voici ce que je veut faire :
1. -------> choix d'une valeur dans ma listeboxA. (nom d'un répertoire, inscrit en dur dans le code)
2. -------> Ma listeboxB se charge automatiquement de valeurs en fonction de listboxA
3. Les valeurs de la listboxB sont variables et representent des répertoires contenus dans le dossier indiqué dans listboxA
Le 1 et 2 je sais faire, maintenant il faut que j'essai d'imbriqué une fonction de listage de répertoire dans ma fonction d'affichage de valeur !!!! soit imbriquer 3 dans 2.
Je ne sais pas faire ça, par contre je veu bien apprendre :)
Voici en gros mon code :
heade <SCRIPT language=JavaScript> //Changement de valeur de la deuxième liste déroulante // liste=new Array(); liste[0] = new Array("Dossier70"); liste[1] = new Array("","dossier1","dossier2"); liste[2] = new Array("","dossier541","dossier52"); liste[3] = new Array("","Marion","dossier123","dossier45"); //fonction pour le changement de valeur de la deuxième liste déroulante // function changeliste() { choix=document.getElementById("listeA").value; t='<select name="listeB" id="listeB">'; for(i=0;i<liste[choix].length;i++) { t+="<option value=\""+liste[choix][i]+"\">"+liste[choix][i]+"</option>"; } document.getElementById("listeB_div").innerHTML=t+'</select>'; } </SCRIPT>
body
<SELECT id=listeA onchange=changeliste() name=listeA >
<OPTION value=0 selected></OPTION>
<OPTION value=1> rep1 </OPTION>
<OPTION value=2> rep2 </OPTION>
<OPTION value=3> rep3 </OPTION>
<OPTION value=4> rep4 </OPTION>
<OPTION value=5> rep5 </OPTION>
<OPTION value=6> rep6 </OPTION>
</SELECT>
<br/>
<br/>
<label for="dossier">Dossier :</label>
<br/>
<A id=listeB_div><SELECT id=listeB name=listeB></SELECT></A>
Sa marche très bien si les valeur "dossier1" "dossier2" "dossier4254" .... sont en dur, mais moi je veut que ces valeur soit dynamique en fonction des repertoires contenus dans rep1 rep2 rep3 ....
C'est faisable ??
Un petit coups de pouce svp ..
Merci a vous
A voir également:
- [PHP- JS] affichage répertoire dans liste box
- Liste déroulante excel - Guide
- Set-top box - Accueil - Box & Connexion Internet
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Affichage double ecran - Guide
37 réponses
Sous-Dossier :
<?php
if (isset($_POST['listeA'])) {
$repertoire = $_POST['listeA'];
//chemin relatif vers le rep depuis le script
$chemin_repertoire = "./".$repertoire."/";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script)
echo "
<form action='index.php' method='POST'>
<select onchange='submit()' name='listeB'>
";
$dp = opendir($chemin_repertoire); // ouvre le rep
while ( $entrer = readdir($dp) )
{
// enleve les fichiers . et ..
if ($entrer != '.' && $entrer != '..'){ //si pas . et ..
if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire
echo "<option value='$entrer'>$entrer</option>";
}
}
}
closedir($dp);
echo "
</select>
<input type='hidden' name='listeA' value='".$_POST['listeA']."'>
</form>
";
}
j'ai simplement enlever le 'submit' du onechange pour la listBox B ..... sa a l'air d'avoir un bon rendu... c'est propre ce que je voens de faire?
par contre j'ai de gros souci...je ne peu pas envoyer mon formulaire ..
C'est du a la structure cette fois ci :
<form>
*****Liste 1
</form>
<form>
*****Liste 2
</form>
<form>
***** Bouton"Envoyer"
</form>
Sa ne marche pas :( .
j'ai essayé
<form>
*****Liste 1
*****Liste 2
***** Bouton"Envoyer"
</form>
Mais la liste ne change pas cette fois ci ...
dans le code que tu a donnée il y a ceci :
<input type='hidden' name='listeA' value='".$_POST['listeA']."'>
en faite sa relance la valeur de la listeA comme sa quand tu valide ton formulaire tu aura la valeur de listeA et listeB
<input type='hidden' name='listeA' value='".$_POST['listeA']."'>
en faite sa relance la valeur de la listeA comme sa quand tu valide ton formulaire tu aura la valeur de listeA et listeB
<html> <body> Dossier : <?php //chemin relatif vers le rep depuis le script $chemin_repertoire = "./";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script) echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeA'> <option selected></option> "; $dp = opendir($chemin_repertoire); // ouvre le rep while ( $entrer = readdir($dp) ) { // enleve les fichiers . et .. if ($entrer != '.' && $entrer != '..'){ //si pas . et .. if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire echo "<option value='$entrer'"; if(isset($_POST['listeA'])) { if($_POST['listeA'] == $entrer) { echo " selected"; }} echo ">$entrer</option>"; } } } closedir($dp); echo " </select> </form> "; ?> Sous-Dossier : <?php if (isset($_POST['listeA'])) { $repertoire = $_POST['listeA']; //chemin relatif vers le rep depuis le script $chemin_repertoire = "./".$repertoire."/";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script) echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeB'> "; $dp = opendir($chemin_repertoire); // ouvre le rep while ( $entrer = readdir($dp) ) { // enleve les fichiers . et .. if ($entrer != '.' && $entrer != '..'){ //si pas . et .. if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire echo "<option value='$entrer'>$entrer</option>"; } } } closedir($dp); echo " </select> <input type='text' name='listeA' value='".$_POST['listeA']."'> </form> "; } ?> Sous Sous-Dossier : <?php if (isset($_POST['listeB'])){ echo " </select> <input type='text' name='listeB' value='".$_POST['listeB']."'> </form> "; } ?>
avec ce code j'arrive a sauvegarder la valeur de mon sous repertoire dans un champs (text ou caché) mais la liste deroulante change toujours de valeur... elle revien toujours la valeur initial.. quelqu'un pourrais m'aider svp ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
regarde cette ligne la :
echo "<option value='$entrer'"; if(isset($_POST['listeA'])) { if($_POST['listeA'] == $entrer) { echo " selected"; }} echo ">$entrer</option>";
toute les infos sont dedans, la je te le fait pour le moment cherche ;)
echo "<option value='$entrer'"; if(isset($_POST['listeA'])) { if($_POST['listeA'] == $entrer) { echo " selected"; }} echo ">$entrer</option>";
toute les infos sont dedans, la je te le fait pour le moment cherche ;)
ok je cherche , je cherche depuis le 31 juillet a 15H51 et 20 sec !!!! :D
Dernière version du code :
Mais j'aurais des souci avec mes <form> par la suite, car j'ai après un bouton "envoyer" qui est censé me récupérer les valeur des listes déroulant et les mettre dans des variables pour en faire un url .... ce bouton "envoyer" est dans un autre <form> et le passage de variable n'est pas globale....
Dernière version du code :
Type : <?php //chemin relatif vers le rep depuis le script $chemin_repertoire = "../test/";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script) echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeA'> <option selected></option> "; $dp = opendir($chemin_repertoire); // ouvre le rep while ( $entrer = readdir($dp) ) { // enleve les fichiers . et .. if ($entrer != '.' && $entrer != '..') { //si pas . et .. if (is_dir($chemin_repertoire."/".$entrer)) { //si c'est un repertoire echo "<option value='$entrer'"; if(isset($_POST['listeA'])) {if($_POST['listeA'] == $entrer) {echo " selected"; } } echo ">$entrer</option>"; } } } closedir($dp); echo " </select> </form> "; ?> Dossier : <?php if (isset($_POST['listeA'])) { $repertoire = $_POST['listeA']; //chemin relatif vers le rep depuis le script $chemin_repertoire = "../test/".$repertoire."/";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script) echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeB'> <option selected></option> "; $dp = opendir($chemin_repertoire); // ouvre le rep while ( $entrer = readdir($dp) ) { // enleve les fichiers . et .. if ($entrer != '.' && $entrer != '..') { //si pas . et .. if (is_dir($chemin_repertoire."/".$entrer)) { //si c'est un repertoire echo "<option value='$entrer'>$entrer</option>"; } } } closedir($dp); echo " </select> <input type='text' name='listeA' value='".$_POST['listeA']."'> </form> "; echo " <form action='index.php' method='POST'> "; if (isset($_POST['listeB'])) { echo " </select> <input type='text' name='listeB' value='".$_POST['listeB']."'> </form> "; } } // récuperer le type if(isset($_POST['listeA'])) $type=$_POST['listeA']; else $type=""; // récuperer le dossier if(isset($_POST['listeB'])) $doss=$_POST['listeB']; else $doss=""; echo "<script>alert('_____type=$type ____ Dossier= $doss.');</script>"; ?>
Mais j'aurais des souci avec mes <form> par la suite, car j'ai après un bouton "envoyer" qui est censé me récupérer les valeur des listes déroulant et les mettre dans des variables pour en faire un url .... ce bouton "envoyer" est dans un autre <form> et le passage de variable n'est pas globale....
voila le code "complet" entre guillement car la cette version ne te cosera plus le souci de la selection qui se barre ;) lol
<html>
<body>
Dossier :
<?php
//chemin relatif vers le rep depuis le script
$chemin_repertoire = "./";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script)
echo "
<form action='index.php' method='POST'>
<select onchange='submit()' name='listeA'>
<option selected></option>
";
$dp = opendir($chemin_repertoire); // ouvre le rep
while ( $entrer = readdir($dp) )
{
// enleve les fichiers . et ..
if ($entrer != '.' && $entrer != '..'){ //si pas . et ..
if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire
echo "<option value='$entrer'"; if(isset($_POST['listeA'])) { if($_POST['listeA'] == $entrer) { echo " selected"; }} echo ">$entrer</option>";
}
}
}
closedir($dp);
echo "
</select>
</form>
";
?>
Sous-Dossier :
<?php
if (isset($_POST['listeA'])) {
$repertoire = $_POST['listeA'];
//chemin relatif vers le rep depuis le script
$chemin_repertoire = "./".$repertoire."/";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script)
echo "
<form action='index.php' method='POST'>
<select onchange='submit()' name='listeB'>
";
$dp = opendir($chemin_repertoire); // ouvre le rep
while ( $entrer = readdir($dp) )
{
// enleve les fichiers . et ..
if ($entrer != '.' && $entrer != '..'){ //si pas . et ..
if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire
echo "<option value='$entrer'"; if(isset($_POST['listeB'])) { if($_POST['listeB'] == $entrer) { echo " selected"; }} echo ">$entrer</option>";
}
}
}
closedir($dp);
echo "
</select>
<input type='text' name='listeA' value='".$_POST['listeA']."'>
</form>
";
}
?>
Sous Sous-Dossier :
<?php
if (isset($_POST['listeB'])){
echo "
</select>
<input type='text' name='listeB' value='".$_POST['listeB']."'>
</form>
";
}
?>
je pas en week end donc si ton probleme et toujours pas resoilu je t'aiderai lundi ;) +++
<html>
<body>
Dossier :
<?php
//chemin relatif vers le rep depuis le script
$chemin_repertoire = "./";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script)
echo "
<form action='index.php' method='POST'>
<select onchange='submit()' name='listeA'>
<option selected></option>
";
$dp = opendir($chemin_repertoire); // ouvre le rep
while ( $entrer = readdir($dp) )
{
// enleve les fichiers . et ..
if ($entrer != '.' && $entrer != '..'){ //si pas . et ..
if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire
echo "<option value='$entrer'"; if(isset($_POST['listeA'])) { if($_POST['listeA'] == $entrer) { echo " selected"; }} echo ">$entrer</option>";
}
}
}
closedir($dp);
echo "
</select>
</form>
";
?>
Sous-Dossier :
<?php
if (isset($_POST['listeA'])) {
$repertoire = $_POST['listeA'];
//chemin relatif vers le rep depuis le script
$chemin_repertoire = "./".$repertoire."/";//tu completes ton_chemin pour mettre le chemin relatif complet du repertoire à lister (relatif par rapport à ce script)
echo "
<form action='index.php' method='POST'>
<select onchange='submit()' name='listeB'>
";
$dp = opendir($chemin_repertoire); // ouvre le rep
while ( $entrer = readdir($dp) )
{
// enleve les fichiers . et ..
if ($entrer != '.' && $entrer != '..'){ //si pas . et ..
if (is_dir($chemin_repertoire."/".$entrer)){ //si c'est un repertoire
echo "<option value='$entrer'"; if(isset($_POST['listeB'])) { if($_POST['listeB'] == $entrer) { echo " selected"; }} echo ">$entrer</option>";
}
}
}
closedir($dp);
echo "
</select>
<input type='text' name='listeA' value='".$_POST['listeA']."'>
</form>
";
}
?>
Sous Sous-Dossier :
<?php
if (isset($_POST['listeB'])){
echo "
</select>
<input type='text' name='listeB' value='".$_POST['listeB']."'>
</form>
";
}
?>
je pas en week end donc si ton probleme et toujours pas resoilu je t'aiderai lundi ;) +++
Merci c'est sympa !!!
je bossais sur un truc du genre
En faite j'ai du mal a traduire l'algorithmie en code php html :s
J 'essai ton code de suite.
Passe un bon week end, merci encore a++
;)
je bossais sur un truc du genre
echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeB'>"; if (isset($_POST['listeB'])) {echo "<option value='$entrer'</option>"; } else {echo"<option selected></option>";}
En faite j'ai du mal a traduire l'algorithmie en code php html :s
J 'essai ton code de suite.
Passe un bon week end, merci encore a++
;)
salut !
Donc maintenant je veut récupérer les valeurs de mes liste deroulante, j'ai lu des tutaux concernant la visibilité des variables...
mais j'ai un code source de cette sorte
<html>
..
<?php code php ... ?>
..
..
..
<?php ICI IL Y A MES CHAMPS
if (isset($_POST['listeA']))
{
$repertoire = $_POST['listeA'];
//chemin relatif vers le rep depuis le script
$chemin_repertoire =...............
?>
..
html
html
html
..
<?php ICI JE VEUT RECUPERER LA VALEUR DES CHAMPS
if( isset($_POST['envoi']) )// si formulaire envoyé
{
// récuperer la date de publication
if(isset($_POST['listeA']))
$listeA=$_POST['listeA'];
?>
..
html
html
html
..
.
</html>
donc pour le passage de varleur, je ne vois pas trops comment faire :s
Donc maintenant je veut récupérer les valeurs de mes liste deroulante, j'ai lu des tutaux concernant la visibilité des variables...
mais j'ai un code source de cette sorte
<html>
..
<?php code php ... ?>
..
..
..
<?php ICI IL Y A MES CHAMPS
if (isset($_POST['listeA']))
{
$repertoire = $_POST['listeA'];
//chemin relatif vers le rep depuis le script
$chemin_repertoire =...............
?>
..
html
html
html
..
<?php ICI JE VEUT RECUPERER LA VALEUR DES CHAMPS
if( isset($_POST['envoi']) )// si formulaire envoyé
{
// récuperer la date de publication
if(isset($_POST['listeA']))
$listeA=$_POST['listeA'];
?>
..
html
html
html
..
.
</html>
donc pour le passage de varleur, je ne vois pas trops comment faire :s
Se qui serai bien c'est que tu donne ton code complet en expliquand ce que tu veux exactement sa serai plus simple pour te guidé ;)
salut, voici mon code :
-Je veux recuperer les valeur de mes deux liste déroulantes, les mettres dans des variables pour les stocké dans ma base de données.
Ces valeurs serviront à construire un url : listeA/listeB/nom_document.doc
-Voila !! Je but essentielement sur l'imbrication d'html dans du php et sur les <form>. :s
Actuellement, avec ce code je récupère bien mes valeur, mais le script d'upload de fichier ne marche plus :(
Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\admin\index.php on line 340
Le fichier est introuvable
Merci :)
<div id="contenu_admin"> <!-- titre--> <p align="center"><span class="titre_cat">.:: Ajouter un fichier ::.</span></p> <span class="libel"> Type : <br/> <?php /***********************************************************************************************************************/ /******************* SCRIPT DE LISTAGE DES REPEROIRES EXISTANTS ********************************/ /************************************************************************************************************************/ //chemin relatif vers le rep depuis le script $chemin_repertoire = "../docs/"; echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeA'> <option selected></option> "; $dp = opendir($chemin_repertoire); // ouvre le repertoire while ( $entrer = readdir($dp) ) {// enleve les fichiers . et .. if ($entrer != '.' && $entrer != '..') {//si pas . et .. if (is_dir($chemin_repertoire."/".$entrer)) {//si c'est un repertoire echo "<option value='$entrer'"; if(isset($_POST['listeA'])) {if($_POST['listeA'] == $entrer) {echo " selected"; } }echo ">$entrer</option>"; } } } closedir($dp); echo " </select> </form> "; ?> <br/> <br/> Dossier : <br/> <?php if (isset($_POST['listeA'])) { $repertoire = $_POST['listeA']; //chemin relatif vers le rep depuis le script $chemin_repertoire = "../docs/".$repertoire."/"; //chemin relatif complet du repertoire à lister (relatif par rapport à ce script) echo " <form action='index.php' method='POST'> <select onchange='submit()' name='listeB'> <option selected></option> "; $dp = opendir($chemin_repertoire); // ouvre le rep while ( $entrer = readdir($dp) ) {// enleve les fichiers . et .. if ($entrer != '.' && $entrer != '..') { //si pas . et .. if (is_dir($chemin_repertoire."/".$entrer)) { //si c'est un repertoire echo "<option value='$entrer'"; if(isset($_POST['listeB'])) {if($_POST['listeB'] == $entrer) {echo " selected"; } } echo ">$entrer</option>"; } } } closedir($dp); echo "</select> <input type='hidden' name='listeA' value='".$_POST['listeA']."'> "; } ?> <br/> <br/> <label for="new_rep">Ou nouveau dossier :</label><br /> <input type="text" name="new_rep" value= "" size="20"/> <br/> <br/> <label for="docdate">Date du document :</label><br /> <input type="text" name="docdate" value="" size="10"/> <br/> <br/> <label for="pubdate">Date de publication :</label><br /> <input type="timestamp" name="pubdate" value="<?php echo date('d-m-Y')?>" size="10"/><br> <br/> <label for="titre">Titre du fichier :</label><br /> <input type="text" name="titre" value= "" size="45"/><br> <br/> <label for="description">Description :</label><br /> <textarea cols="35"name="description" id="description"></textarea><br /> <br/> <label for="langue">Langue :</label><br /> <select name="langue"> <option>Français</option> <option>Anglais</option> <option>Italien</option> <option>Allemand</option> <option>Russe</option> <option>Chinois</option> </select> <br/> <br/> <label for="fichier">Rattacher :</label><br /> <input type="file" name="fichier" size="30"><br> <br/> <label for="mot_clef">Mots clefs rattaché au document :</label><br /> <input type="text" name="mot_clef" value="" size="45"/><br> <br/> <input type="submit" name="envoi" value="Envoyer"><br></span> </span> </form> </div> <!--- SCRIPT D ENVOI DES INFORMATIONS ET DU FICHIER ( UPLOAD) --> <?php include '../fonctions.php'; // necessaire pour faire appel aux fonctions contenus dans ce fichier if( isset($_POST['envoi']) )// si formulaire envoyé { /* //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx champs de récuperation de valeur 88888888888888888888888888888888888888/ echo "<input type='text' name='A' value='".$_POST['listeA']."'>"; echo "<input type='text' name='B' value='".$_POST['listeB']."'>"; $type=$_POST['A']; // récuperer le type $doss=$_POST['B']; // récuperer le dossier //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx DEBUG nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn/ echo "<script>alert('ALERT PHP SCRIPT 1 : _____type=$type ____ Dossier= $doss.');</script>"; */ // récuperer la date de publication if(isset($_POST['pubdate'])) $pubdate=$_POST['pubdate']; else $pubdate=""; // récuperer la date d'edition du document if(isset($_POST['docdate'])) $docdate=$_POST['docdate']; else $docdate=""; // conversion du format de date jj-mm-aaaa en aaaa-mm-jj pour le stockage dans la base de données au format date function dateFRenMySQL ($jour) //$jour au format JJ-MM-AAAA {return substr($jour,6,4).substr($jour,3,2).substr($jour,0,2);} //renvoie la date au format AAAA-MM-JJ $pubdate= dateFRenMySQL ($pubdate); $docdate= dateFRenMySQL ($docdate); // récuperer le nom du nouveau dossier si il en existe un if (isset($_POST['new_rep']) ) {$new_rep=$_POST['new_rep'];} else $new_rep=""; // récuperer la valeur de la liste déroulante 1 (type de document) if (isset($_POST['listeA']) ) {$type=$_POST['listeA'];} else $type=""; // récuperer la valeur de la liste déroulante 2 (dossier) if (isset($_POST['listeB']) ) {$listeB=$_POST['listeB'];} else $listeB=""; // récuperer le titre if (isset($_POST['titre']) ) {$titre=$_POST['titre']; $titre=addslashes($titre);} else $titre=""; // récuperer la description en echappant les guillemets --> ' ' if (isset($_POST['description']) ) {$description=$_POST['description']; $description=addslashes($description);} else $description=""; // récuperer la langue du document en remplaçant les ç par c (pour le français) if (isset($_POST['langue']) ) $langue=$_POST['langue']; else $langue=""; $langue = str_replace ( 'ç' , 'c' , $langue); //récuperer les mots clefs en echappant les guillemets --> ' ' if (isset($_POST['mot_clef']) ) {$mot_clef=$_POST['mot_clef']; $mot_clef=addslashes($mot_clef);} else $mot_clef=""; //DEBUG // /*******************//////*************************////////*******************//////////*********************// echo "<script>alert('MES VALEURS ::: type/listeA=($type) listeB=($listeB) nouveau repertoire=($new_rep) docdate=($docdate) titre=($titre) description=($description) langue=($langue) mot clé=($mot_clef) date publication=($pubdate) ');</script>"; /*************************************************************************************************/ /************************ SCRIPT DE CREATION ET DE TEST DOSSIER **********************/ /*************************************************************************************************/ // On vérifie si un des champs est vide // if(empty($type) OR empty($docdate) OR empty($titre) OR empty($description) OR empty($langue) OR empty($mot_clef)) // { echo '<font color="red">Merci de remplir tout les champs !</font>'; // } //Si tout les champs sont remplits, on commancer le traitement des informations // else // { // si le champs "dossier" n'est pas vide --> le chemin sera " .../docs/type/listeB/document.doc " if(!empty($listeB)) { $content_dir= '../docs/'.$type.'/'.$listeB.'/'; $dossier=$listeB; //on stock la valeur de la liste déroulante B dans une variable } // si les champs "dossier" et "nouveau dossier" sont vides --> message d'erreur if(empty($listeB) AND empty($new_rep)) { exit ("<script>alert('Créez ou selectionnez un dossier.');</script>"); } // si le champs "nouveau dossier" n'est pas vide et le champs "dossier" est vide --> tenter la création de dossier" if(empty($listeB) AND !empty($new_rep)) // le chemin par defaut est ../docs/type/nouveau dossier/ { $content_dir= '../docs/'.$type.'/'.$new_rep.'/'; $dossier=$new_rep; //on stock la valeur de la liste déroulante B dans une variable // si le chemin existe déja --> message d'erreur if(is_dir($content_dir)) { echo "<script>alert('Dossier déjà existant : le fichier à été copié dans le répertoire existant.');</script>"; //return true; } else // sinon creer dossier { if(mkdir($content_dir)) { return true; } else { echo "<script>alert('Erreur inconnu lors de la création du répertoire $new_rep');</script>"; } } } /**********************************************************************************/ /************************ SCRIPT DE COPIE DE DOCUMENT **********************/ /**********************************************************************************/ $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // infos sur le fichier $nom = $_FILES['fichier']['name']; // nom complet du fichier: "fichier.doc" $type_file = $_FILES['fichier']['type']; // application associé. : "application/msword" $extension = strstr($_FILES['fichier']['name'], '.'); $extension = str_replace ( '.' , '' , $extension);// extension du fichier: "doc" // On autorise uniquement l'upload des fichiers portant l'une des extensuions suivante : if ($extension != 'doc' && $extension !='docx' && $extension != 'xls' && $extension != 'txt' && $extension != 'rtf' && $extension != 'pdf' && $extension != 'ppt' && $extension != 'gif' && $extension != 'jpg' && $extension != 'png') { exit("Ce fichier n'est pas téléchargeable."); } else { if( !move_uploaded_file($tmp_file, $content_dir . $nom) ) { exit("Impossible de copier le fichier dans $content_dir"); } // si l'upload c'est bien passé, on réalise la mise a jour des infos dans la base else { include '../connex.php'; //les variables de connexion host user passwd et bdd sont sur une autre page // Connexion au serveur et à la base de données mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur"); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); // on insert les données $sql1 ="INSERT INTO `docs` ( `type` , `titre` , `description` , `nom_fichier` , `langue` , `format` , `mots_clefs` , `docdate` , `pubdate`, `dossier`) VALUES('$type', '$titre' , '$description', '$nom', '$langue', '$extension', '$mot_clef', '$docdate', '$pubdate','$dossier')"; mysql_query($sql1) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); echo "<script>alert(' .:: INFORMATIONS MISES À JOUR ::.');</script>"; // On se déconnecte de MySQL mysql_close(); } } // } } ?> </div> <!-- FIN de la mise en page FOND --> </body> </html>
-Je veux recuperer les valeur de mes deux liste déroulantes, les mettres dans des variables pour les stocké dans ma base de données.
Ces valeurs serviront à construire un url : listeA/listeB/nom_document.doc
-Voila !! Je but essentielement sur l'imbrication d'html dans du php et sur les <form>. :s
Actuellement, avec ce code je récupère bien mes valeur, mais le script d'upload de fichier ne marche plus :(
Notice: Undefined index: fichier in C:\Program Files\EasyPHP 2.0b1\www\admin\index.php on line 340
Le fichier est introuvable
Merci :)
en faite j'ai un souci avec plusieurs pages contenant " $type_file = $_FILES['fichier']['type']; " !!
je ne peu plus uploader mes fichiers ... depuis la modif du code.
je ne peu plus uploader mes fichiers ... depuis la modif du code.
Bonjour,
personne ne peu m'aider s'il vous plaît ?
j'ai toujours l'erreur :
Notice: Undefined index: fichier in C:\.....\index.php on line 340
la ligne 340 contient :
340 :$tmp_file = $_FILES['fichier']['tmp_name'];
341:
342: if( !is_uploaded_file($tmp_file) )
343: {
344: exit("Le fichier est introuvable");
}
// infos sur le fichier
$nom = $_FILES['fichier']['name']; // nom complet du fichier: "fichier.doc"
$type_file = $_FILES['fichier']['type']; // application associé. : "application/msword"
$extension = strstr($_FILES['fichier']['name'], '.'); ....
Merci à vous, la je seche :(
personne ne peu m'aider s'il vous plaît ?
j'ai toujours l'erreur :
Notice: Undefined index: fichier in C:\.....\index.php on line 340
la ligne 340 contient :
340 :$tmp_file = $_FILES['fichier']['tmp_name'];
341:
342: if( !is_uploaded_file($tmp_file) )
343: {
344: exit("Le fichier est introuvable");
}
// infos sur le fichier
$nom = $_FILES['fichier']['name']; // nom complet du fichier: "fichier.doc"
$type_file = $_FILES['fichier']['type']; // application associé. : "application/msword"
$extension = strstr($_FILES['fichier']['name'], '.'); ....
Merci à vous, la je seche :(
salut alain, tu vas bien ??
Merci, l'erreur venais de mon <form>
voici comment il était :
<form action='index.php' method='POST' >
je l'ai edité de cette façon:
<form action='index.php' method='POST' enctype='multipart/form-data'>
sa va beaucoup mieux... le seul souci maintenant c'est lors de la création d'un nouveau dossier, le fichier n'y est pas copiée ...
Merci, l'erreur venais de mon <form>
voici comment il était :
<form action='index.php' method='POST' >
je l'ai edité de cette façon:
<form action='index.php' method='POST' enctype='multipart/form-data'>
sa va beaucoup mieux... le seul souci maintenant c'est lors de la création d'un nouveau dossier, le fichier n'y est pas copiée ...
Salut,
oui ça va
effectivement il manquait le type de codage spécifique dans le cas ou on utilise le type ="file"
le seul souci maintenant c'est lors de la création d'un nouveau dossier, le fichier n'y est pas copiée ...
comment cree tu le nouveau dossier ?
il faut qu'il ait les bons droits
si tu le crée par un script php par mkdir() il aura les droits du propriétaire donc Apache
et tu pourras y enregistrer tes fichiers par un script PHP (Apache) sans pb
@lain
oui ça va
effectivement il manquait le type de codage spécifique dans le cas ou on utilise le type ="file"
le seul souci maintenant c'est lors de la création d'un nouveau dossier, le fichier n'y est pas copiée ...
comment cree tu le nouveau dossier ?
il faut qu'il ait les bons droits
si tu le crée par un script php par mkdir() il aura les droits du propriétaire donc Apache
et tu pourras y enregistrer tes fichiers par un script PHP (Apache) sans pb
@lain
salut, je crée mon dossier grace a un script.
Non ce n'est pas une question de droits, avant mon script marchais :(
Non ce n'est pas une question de droits, avant mon script marchais :(
{ if(mkdir($content_dir)) { return true; } else { echo "<script>alert('Erreur inconnu lors de la création du répertoire $new_rep');</script>"; } }
pour aller plus loin dans mon probleme je vien de constater que :
- le dossier est bien créé avec mon script, il est existant est visible dans mon /www/
- le fichier n'y est pas copié a l'interieur (le dossier est vide)
- le dossier n'est pas enregistré dans ma base de données (ce que je fait normalement a tout mes dossier) du coups je ne le voit pas via mes pages html .(script de listage des répertoire via un champs bdd)...
- le dossier est bien créé avec mon script, il est existant est visible dans mon /www/
- le fichier n'y est pas copié a l'interieur (le dossier est vide)
- le dossier n'est pas enregistré dans ma base de données (ce que je fait normalement a tout mes dossier) du coups je ne le voit pas via mes pages html .(script de listage des répertoire via un champs bdd)...
le voici :
$tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); }
// si le chemin existe déja --> message d'erreur if(is_dir($content_dir)) { echo "<script>alert('Dossier déjà existant : le fichier à été copié dans le répertoire existant.');</script>"; //return true; } else // sinon creer dossier { if(mkdir($content_dir)) { echo "<script>alert('DEBUG fin makdir ');</script>"; return true; } else { echo "<script>alert('Erreur inconnu lors de la création du répertoire $new_rep');</script>";} } echo "<script>alert(' DEBUG debut copie document');</script>"; } // SCRIPT DE COPIE DE DOCUMENT echo "<script>alert(' DEBUG ');</script>"; $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { echo "<script>alert('DEBUG Fichier introiuvable');</script>"; exit("Le fichier est introuvable"); }
dans cette portion de code, pourquoi le pop up "DEBUG fin makdir " s'affiche bien mais 'DEBUG debut copie document' ne s'affiche pas lors de la création d'un dossier ???
oups j'ai zapper une ligne de code ..
mon accolade n'est pas orpheline ..
if(empty($listeB) AND !empty($new_rep)) { $content_dir= '../docs/'.$type.'/'.$new_rep.'/'; $dossier=$new_rep; if(is_dir($content_dir)) { echo "<script>alert('......');</script>"; } else { if(mkdir($content_dir)) { echo "<script>alert('DEBUG fin makdir ');</script>"; return true; } else { echo "<script>alert('Erreur inconnu lors de la création du répertoire $new_rep');</script>"; } } echo "<script>alert(' DEBUG debut copie document');</script>"; } // SCRIPT DE COPIE DE DOCUMENT echo "<script>alert(' DEBUG ');</script>"; $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { echo "<script>alert('DEBUG Fichier introiuvable');</script>"; exit("Le fichier est introuvable"); }
mon accolade n'est pas orpheline ..