Probleme formulaire PHP
Résolu
jupiler
-
jupiler -
jupiler -
Bonjour,
voila j ai une galerie photo avec un champ 'ordre' dans ma page qui définit l'ordre d'affichage de ma page.
Mon souci est que la j'ai trois images dans ma page mon formulaire affiche bien mes 3 input mais dans le traitement de mon formulaire seul mon dernier input est pris en compte merci de m aider a faire en sorte que des que je modifie n'importe quel input l'ordre de mes images soit bien modifié
Le formulaire :
<?php
$sql3 = "SELECT * FROM test order by ordre";
$req3 = mysql_query($sql3) or die( mysql_error() ) ;
$total3 = mysql_num_rows($req3);
echo '<table>'."\n";
while($row3 = mysql_fetch_array($req3))
{
echo '<form method ="post" action="order2.php">';
echo '<tr>';
echo '<td>'.$row3["namephoto"].' <img src="../images/'.$row3["namephoto"].'" height="50px" /></td>';
echo '<td></td>';
echo '<td><input type="text" name="site" value="'.$row3["ordre"].'"></td>';
echo '</tr>'."\n";
$ordre=$row3["ordre"];
$_SESSION['ordre']=$ordre;
}
echo '</table>'."\n" ;
echo '<br /><center><input type="submit" name="ok" value="Modifier l\'ordre"/></center><br /><br />';
echo '</form>';
?>
le traitement :
if (isset($_POST['ok']))
{
$site=$_POST['site'];
echo $sql2= "update test set ordre='".$site."' where ordre='".$ordre."'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
if($req2)
{
echo $site;
}
else
{
echo 'Ordre non modifié';
}
}
voila j ai une galerie photo avec un champ 'ordre' dans ma page qui définit l'ordre d'affichage de ma page.
Mon souci est que la j'ai trois images dans ma page mon formulaire affiche bien mes 3 input mais dans le traitement de mon formulaire seul mon dernier input est pris en compte merci de m aider a faire en sorte que des que je modifie n'importe quel input l'ordre de mes images soit bien modifié
Le formulaire :
<?php
$sql3 = "SELECT * FROM test order by ordre";
$req3 = mysql_query($sql3) or die( mysql_error() ) ;
$total3 = mysql_num_rows($req3);
echo '<table>'."\n";
while($row3 = mysql_fetch_array($req3))
{
echo '<form method ="post" action="order2.php">';
echo '<tr>';
echo '<td>'.$row3["namephoto"].' <img src="../images/'.$row3["namephoto"].'" height="50px" /></td>';
echo '<td></td>';
echo '<td><input type="text" name="site" value="'.$row3["ordre"].'"></td>';
echo '</tr>'."\n";
$ordre=$row3["ordre"];
$_SESSION['ordre']=$ordre;
}
echo '</table>'."\n" ;
echo '<br /><center><input type="submit" name="ok" value="Modifier l\'ordre"/></center><br /><br />';
echo '</form>';
?>
le traitement :
if (isset($_POST['ok']))
{
$site=$_POST['site'];
echo $sql2= "update test set ordre='".$site."' where ordre='".$ordre."'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
if($req2)
{
echo $site;
}
else
{
echo 'Ordre non modifié';
}
}
A voir également:
- Probleme formulaire PHP
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
5 réponses
while($row3 = mysql_fetch_array($req3)) { echo '<form method ="post" action="order2.php">';
Moi je vois que tu fais trois fois un formulaire, donc trois formulaire qui ont tous le meme input nommé "site".
Donc tu as :
Formulaire1 --> site
Formulaire2 --> site
Formulaire3 --> site
Une meilleure technique serait de mettre ta balise form avant ta boucle while et tu donne un nom a ton input en fonction de l'image pour que tes trois input ai un nom différent (ex : site1, site2, site3)
Apres dans ton traitement tu fais du :
if (isset($_POST['site1'])) echo 'pouet'; else if (isset($_POST['site2'])) Etc ...
Exemple à peu près (il reste surement des petites erreurs j'ai pas testé):
$count = 1; echo '<form method ="post" action="order2.php">'; while($row3 = mysql_fetch_array($req3)) { echo '<tr>'; echo '<td>'.$row3["namephoto"].' <img src="../images/'.$row3["namephoto"].'" height="50px" /></td>'; echo '<td></td>'; echo '<td><input type="text" name="site' . $count . '" value="'.$row3["ordre"].'"></td>'; echo '</tr>'."\n"; $count++; } echo '</table>'."\n" ; echo '<br /><center><input type="submit" name="ok" value="Modifier l\'ordre"/></center><br /><br />'; echo '</form>'; ?>
Je sais pas ce que tu cherche a faire exactement mais tu peux faire :
Un seul formulaire avec un seul input en type hidden.
un bouton pour chacune de tes photo avec en href une fonction javascript qui modifie la valeur de ton champ hidden en fonction du bouton ou tu clique et qui envoi le formulaire.
Un seul formulaire avec un seul input en type hidden.
un bouton pour chacune de tes photo avec en href une fonction javascript qui modifie la valeur de ton champ hidden en fonction du bouton ou tu clique et qui envoi le formulaire.
Merci pour tes réponses pilow
en gros ce que je veux faire le visiteur affiche les images de la galerie avec un champ input ou il y a le numéro d'ordre de l'image et le visiteur modifie le numéro d'ordre qu'il souhaite et valide derrière il y a un traitement qui modifie dans la base le numéro d'ordre.
mais la je pense qu'il suffirait juste qu je récupère $site=$_POST["site'.$i.'"];
Mais bien sur la ca ne marche pas je n vois pas comment faire ?
Merci
en gros ce que je veux faire le visiteur affiche les images de la galerie avec un champ input ou il y a le numéro d'ordre de l'image et le visiteur modifie le numéro d'ordre qu'il souhaite et valide derrière il y a un traitement qui modifie dans la base le numéro d'ordre.
mais la je pense qu'il suffirait juste qu je récupère $site=$_POST["site'.$i.'"];
Mais bien sur la ca ne marche pas je n vois pas comment faire ?
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans ton cas ma technique ne servirait pas a grand chose car plusieurs valeurs peuvent être modifiées et tu as besoin des input text.
EDIT : Je refais plus détaillé
Dans ce cas :
1/ Tu fais un formulaire avec tous tes champs input text -> Un pour chaque image
2/ Tu fais ton bouton qui permet de les poster
3/ Tu recupere toutes les valeurs postées via $_POST['site'.$count]
4/ Tu modifies dans ta DB les valeurs ordre en fonction de ces $_POST
5/ Tu reactualise la page ensuite.
EDIT : Je refais plus détaillé
Dans ce cas :
1/ Tu fais un formulaire avec tous tes champs input text -> Un pour chaque image
2/ Tu fais ton bouton qui permet de les poster
3/ Tu recupere toutes les valeurs postées via $_POST['site'.$count]
4/ Tu modifies dans ta DB les valeurs ordre en fonction de ces $_POST
5/ Tu reactualise la page ensuite.