Probleme pour afficher le bon fichier
Résolu
blo75
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
blo75 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
blo75 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour ,
j'ai une page ou il y a toute les ligne de phpmyadmin afficher et a droite de chaque ligne il y a un lien qui envoie sur les paramètre des fichiers uploader (chaque ligne de tableau correspond aux information d'un fichier) ou on peut ajouter une description ou changer le nom du fichier, pour l'instant j'y arrive bien mais là ou sa se corse c'est pour définir quel ligne , je m'explique quand je clique sur le lien sa m'envoie sur la page mais sa m'affiche toujours le même nom de fichier (le dernier) Voila le code :
la page php qui affiche toute les lignes de la base de donnée :
<?php
$base = mysql_query('SELECT * FROM upload');
$email = $_SESSION['email'];
while($donne = mysql_fetch_array($base))
{
?>
<table>
<form method="post" name="monform" id="monform" action="#">
<tr id="page1">
<td><?php echo $donne['nom']; ?></td>
<td><?php echo $donne['taille']; ?></td>
<td><?php echo $donne['date']; ?></td>
<td><a href="modifier.php"><img src="modifier.png" title="Modifier" id="modifier" /> </a></td>
</tr>
</form>
</table>
<?php
}
?>
Et là la page pour modifier les infos du fichier :
<?php
$base = mysql_query('SELECT * FROM upload');
while($donne = mysql_fetch_array($base))
{
?>
<input type="text" id="filename" value="<?php echo $donne['nom']; ?>" /><br /><br />
<textarea id="filedescription" /></textarea><br /><br /><br />
<input type="submit" value="Soumettre" id="filesubmit" />
<?php
}
?>
Malheureusement comme je vous est dit dans le value sa m'affiche toujours le nom du dernier fichier.
j'ai une page ou il y a toute les ligne de phpmyadmin afficher et a droite de chaque ligne il y a un lien qui envoie sur les paramètre des fichiers uploader (chaque ligne de tableau correspond aux information d'un fichier) ou on peut ajouter une description ou changer le nom du fichier, pour l'instant j'y arrive bien mais là ou sa se corse c'est pour définir quel ligne , je m'explique quand je clique sur le lien sa m'envoie sur la page mais sa m'affiche toujours le même nom de fichier (le dernier) Voila le code :
la page php qui affiche toute les lignes de la base de donnée :
<?php
$base = mysql_query('SELECT * FROM upload');
$email = $_SESSION['email'];
while($donne = mysql_fetch_array($base))
{
?>
<table>
<form method="post" name="monform" id="monform" action="#">
<tr id="page1">
<td><?php echo $donne['nom']; ?></td>
<td><?php echo $donne['taille']; ?></td>
<td><?php echo $donne['date']; ?></td>
<td><a href="modifier.php"><img src="modifier.png" title="Modifier" id="modifier" /> </a></td>
</tr>
</form>
</table>
<?php
}
?>
Et là la page pour modifier les infos du fichier :
<?php
$base = mysql_query('SELECT * FROM upload');
while($donne = mysql_fetch_array($base))
{
?>
<input type="text" id="filename" value="<?php echo $donne['nom']; ?>" /><br /><br />
<textarea id="filedescription" /></textarea><br /><br /><br />
<input type="submit" value="Soumettre" id="filesubmit" />
<?php
}
?>
Malheureusement comme je vous est dit dans le value sa m'affiche toujours le nom du dernier fichier.
A voir également:
- Probleme pour afficher le bon fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
3 réponses
ton problème si j'ai bien compris, provient du deuxième code ...
si tu regarde ton code source de ta page de modification du nom de fichier, tu remarqueras qu'elle a une liste de input ayant tous le même identifiant id ...
Ça peut pas coller...
Du coup, je te propose d'ajouter un formulaire de sortie avec une liste de champs caché qui auront pour but de gérer les passage de paramètres ...
Pour faire suivre les valeurs a changer, sur l'événement onchange du input tu fais un copier coller de la valeur.
Comprends tu?
si tu regarde ton code source de ta page de modification du nom de fichier, tu remarqueras qu'elle a une liste de input ayant tous le même identifiant id ...
Ça peut pas coller...
Du coup, je te propose d'ajouter un formulaire de sortie avec une liste de champs caché qui auront pour but de gérer les passage de paramètres ...
Pour faire suivre les valeurs a changer, sur l'événement onchange du input tu fais un copier coller de la valeur.
Comprends tu?
Fallentree
Messages postés
2309
Date d'inscription
Statut
Membre
Dernière intervention
209
sinon lorsque tu fais modifier.php, il faut passer un parametre genre modifier.php?id=5 et changer ton fichier modifier.php avec une gestion des parametres $_GET pour creer la bonne requete
Re bonjour,
désolé du retard mais je crois que je vais devenir fous ,voila ou j'en suis :
Au lieu de mettre un lien pour chaque ligne du tableau je pense que ce serai plus simple d'utiliser un checkbox pour chaque ligne avec un bouton ( <input type="button" /> ) en haut de la page qui permettra de supprimer les lignes du tableau sélectionner grâce au checkbox.
Le problème est simple RIEN ne marche peut être que vous y verrez plus claire avec le code :
<input type="button" name="supprimer" value="Supprimer" /> // ce code ce situe en haut de la page vous l'aurez sûrement compris c'est le bouton qui supprimera les lignes du tableau sélectionner
<?php
$sql = mysql_query('SELECT * FROM upload');
$email = $_SESSION['email'];
while($donne = mysql_fetch_array($sql))
{
$id = $donne['id'];
?>
<form action="#" method="post">
<table style="margin-left: 164px; margin-top: 2px;">
<tr id="page5">
<td><input name="choix[]" type="checkbox" value="<?php echo $id; ?>" /></td>
<td style="padding-left: 20px;width: 400px;" name="sais"><?php echo $donne['nom']; ?></td>
<td style="padding-left: 85px;width: 331px;"><a id="li1" href="texte/<?php echo $email;?>/<?php echo $donne['lien']; ?>"><?php echo $donne['lien']; ?></a></td>
<td style="width: 100px;padding-left: 35px;"><?php echo $donne['taille']; ?></td>
<td style="padding-left: 35px;"><?php echo $donne['date']; ?></td>
</tr>
</table>
</form>
<?php
}
?>
J'ai tenté et retenté plein de code mais a chaque fois rien ne marche
du cote des formulaire j'ai essayé de tout englobé ou ou d'englobé les deux bloc avec un formulaire chacun.
A oui aussi avant de finir je vous prévient qu'au mois d'avril je ne savais meme pas que le HTML existait donc si vous pouviez évitez les vocabulaire incompréhensible .
Merci d'avance a ceux qui auront le courage de lire tout sa malgré les faute d'orthographe.
désolé du retard mais je crois que je vais devenir fous ,voila ou j'en suis :
Au lieu de mettre un lien pour chaque ligne du tableau je pense que ce serai plus simple d'utiliser un checkbox pour chaque ligne avec un bouton ( <input type="button" /> ) en haut de la page qui permettra de supprimer les lignes du tableau sélectionner grâce au checkbox.
Le problème est simple RIEN ne marche peut être que vous y verrez plus claire avec le code :
<input type="button" name="supprimer" value="Supprimer" /> // ce code ce situe en haut de la page vous l'aurez sûrement compris c'est le bouton qui supprimera les lignes du tableau sélectionner
<?php
$sql = mysql_query('SELECT * FROM upload');
$email = $_SESSION['email'];
while($donne = mysql_fetch_array($sql))
{
$id = $donne['id'];
?>
<form action="#" method="post">
<table style="margin-left: 164px; margin-top: 2px;">
<tr id="page5">
<td><input name="choix[]" type="checkbox" value="<?php echo $id; ?>" /></td>
<td style="padding-left: 20px;width: 400px;" name="sais"><?php echo $donne['nom']; ?></td>
<td style="padding-left: 85px;width: 331px;"><a id="li1" href="texte/<?php echo $email;?>/<?php echo $donne['lien']; ?>"><?php echo $donne['lien']; ?></a></td>
<td style="width: 100px;padding-left: 35px;"><?php echo $donne['taille']; ?></td>
<td style="padding-left: 35px;"><?php echo $donne['date']; ?></td>
</tr>
</table>
</form>
<?php
}
?>
J'ai tenté et retenté plein de code mais a chaque fois rien ne marche
du cote des formulaire j'ai essayé de tout englobé ou ou d'englobé les deux bloc avec un formulaire chacun.
A oui aussi avant de finir je vous prévient qu'au mois d'avril je ne savais meme pas que le HTML existait donc si vous pouviez évitez les vocabulaire incompréhensible .
Merci d'avance a ceux qui auront le courage de lire tout sa malgré les faute d'orthographe.
Bon, le vois que tu rames un max ...
je te conseilles déjà de faire un print_r() de ton $_POST pour voir les variables retournées de ton formulaire...
Tu verras que c'est le bordel !!!?
chaque éléments de ton formulaire doit être unique et les tableaux ne peuvent être passés comme paramètre via le $_POST... exple < input name="choix[]" type="checkbox" ???
pour ruser, autrement dit pour passer plusieurs valeurs à supprimer, tu peux utiliser une chaîne de caractère que tu transformes en tableau après réception a l'aide de la fonction php implode()
https://www.php.net/manual/fr/function.implode.php
si tu veux avoir que les éléments a supprimer comme paramètre, tu peux rajouter un événement sur ton input ...
par exemple non formel
dans le cas où toutes les lignes seront passées au formulaires ... ("on se mélange les crayons mais bon passons")
par contre si tu sors le formulaire du tableau
tu peux y joindre un ou des champs caché type texte qui renverront l'id de l'élément a supprimer...
Deux solutions avec l'implode mais probleme de doublon si l'on decoches l element
l'autre consiste a rajouter a chaque fois un champs caché en utilisisant un code javascript ...
https://www.w3schools.com/jsref/met_document_createelement.asp
pas le temps de faire mieux...
je te conseilles déjà de faire un print_r() de ton $_POST pour voir les variables retournées de ton formulaire...
Tu verras que c'est le bordel !!!?
chaque éléments de ton formulaire doit être unique et les tableaux ne peuvent être passés comme paramètre via le $_POST... exple < input name="choix[]" type="checkbox" ???
pour ruser, autrement dit pour passer plusieurs valeurs à supprimer, tu peux utiliser une chaîne de caractère que tu transformes en tableau après réception a l'aide de la fonction php implode()
https://www.php.net/manual/fr/function.implode.php
si tu veux avoir que les éléments a supprimer comme paramètre, tu peux rajouter un événement sur ton input ...
par exemple non formel
< input name="choix<?php echo $id; ?>" type="checkbox" onclick="if (this.checked) this.value=1; else this.value=false;alert(this.value);"
dans le cas où toutes les lignes seront passées au formulaires ... ("on se mélange les crayons mais bon passons")
par contre si tu sors le formulaire du tableau
tu peux y joindre un ou des champs caché type texte qui renverront l'id de l'élément a supprimer...
Deux solutions avec l'implode mais probleme de doublon si l'on decoches l element
l'autre consiste a rajouter a chaque fois un champs caché en utilisisant un code javascript ...
https://www.w3schools.com/jsref/met_document_createelement.asp
pas le temps de faire mieux...
Bwaaaaa! PHP5.6 est sorti, mysql_query et les autres fonctions mysql_* n'existent plus (et quoi qu'il en soit l'extension MySQL est mauvaise, passe a mysqli/PDO)!