[PHP- JS] affichage répertoire dans liste box

Résolu/Fermé
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 31 juil. 2008 à 15:51
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 1 sept. 2008 à 15:20
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 :

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:

37 réponses

-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 août 2008 à 11:47
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 ...
0
BlackDrag00n Messages postés 34 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 5 août 2011 8
22 août 2008 à 12:32
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
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 août 2008 à 13:53
oui mais j'ai pas compris le rapport avec le fait que sa me remet a chaque fois la première valeur dans la listbox 2 .. desolé je debute :s
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 août 2008 à 14:37
<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 ?
0
BlackDrag00n Messages postés 34 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 5 août 2011 8
22 août 2008 à 15:42
att je regarde ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BlackDrag00n Messages postés 34 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 5 août 2011 8
22 août 2008 à 15:45
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 ;)
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 août 2008 à 15:59
ok je cherche , je cherche depuis le 31 juillet a 15H51 et 20 sec !!!! :D

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....
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 août 2008 à 15:59
oups doublons ..... :/
0
BlackDrag00n Messages postés 34 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 5 août 2011 8
22 août 2008 à 16:05
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 ;) +++

0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
22 août 2008 à 16:14
Merci c'est sympa !!!

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++
;)
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
25 août 2008 à 10:05
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
0
BlackDrag00n Messages postés 34 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 5 août 2011 8
25 août 2008 à 17:29
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é ;)
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
26 août 2008 à 09:23
salut, voici mon code :

<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 :)
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
26 août 2008 à 11:09
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.
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
28 août 2008 à 14:01
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 :(



0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 août 2008 à 14:30
Salut,

c'est bizarre car ça a l'air correct ton champ <input typ="file" du formulaire abien comme name="fichier"

essayes de faire un print_r($_FILES); pour voir ce que tu as dans ces variables globales

@lain
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 août 2008 à 15:35
ou alors mets:

if(isset($_FILES['fichier']){$tmp_file = $_FILES['fichier']['tmp_name'];}
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
28 août 2008 à 16:25
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 ...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > -CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013
28 août 2008 à 21:31
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
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
1 sept. 2008 à 11:47
salut, je crée mon dossier grace a un script.
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>"; }
			}
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2008 à 11:48
alors c'est un pb de chemin vers ton repertoire ou tu veux écrire
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
1 sept. 2008 à 11:54
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)...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2008 à 12:06
quel est ton code d'enregistrement du fichier dans le rep ?
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
1 sept. 2008 à 14:14
le voici :


		$tmp_file = $_FILES['fichier']['tmp_name'];
			
		if( !is_uploaded_file($tmp_file) )
		{
		   exit("Le fichier est introuvable");
		}
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
1 sept. 2008 à 14:39
// 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 ???
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2008 à 14:49
Normal ton } après cette alert est orpheline
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
1 sept. 2008 à 15:01
oups j'ai zapper une ligne de code ..

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 ..
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
1 sept. 2008 à 15:20
apparament c'est mon return qui me rendrais fou.
Sa sortais de ma fonction sans même faire la suite des instruction !!
0