Garder une saisie apres selection liste PHP

Résolu/Fermé
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 - 4 août 2008 à 14:38
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 - 27 août 2008 à 14:43
Bonjour,
Dans un formulaire PHP avec une base Access, je rempli des champs et je sélectionne dans une liste déroulante, un nom.
A cette sélection, mes données où je viens de rentrée sont automatiquement effacées !
Comment garder en mémoire toute les données saisies ?

Merci
A voir également:

6 réponses

nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 4
27 août 2008 à 14:43
Après longue réflection , j'ai trouvé une solution:
dans mon script javascript:

<script language="javascript">
function toto()
{

var valeurradio1 = document.getElementById('bradio1').checked;
var valeurradio2 = document.getElementById('bradio2').checked;
var valeurradio3 = document.getElementById('bradio3').checked;
var valeurradio4 = document.getElementById('bradio4').checked;

document.getElementById('radio2').checked = valeurradio1;
document.getElementById('radio3').checked = valeurradio2;
document.getElementById('radio4').checked = valeurradio3;
document.getElementById('radio5').checked = valeurradio4;

document.forms['form1'].submit();
}

</script>



dans mon select :

	

echo '<input type="radio" name="radio2" style="display:none" />';
echo '<input type="radio" name="radio3" style="display:none"/>';
echo '<input type="radio" name="radio4" style="display:none"/>';
echo '<input type="radio" name="radio5" style="display:none"/>';


et sur les bouton radio :

<input <? if ($_POST['radio2']){echo "checked='checked'";} else {echo "";}?> type="radio" id="bradio1"  name="bradio"  value="">
<input <? if ($_POST['radio3']){echo "checked='checked'";} else {echo "";}?> type="radio" id="bradio2"  name="bradio"  value="">
<input <? if ($_POST['radio4']){echo "checked='checked'";} else {echo "";}?> type="radio" id="bradio3"  name="bradio"  value="" >
<input <? if ($_POST['radio5']){echo "checked='checked'";} else {echo "";}?> type="radio" id="bradio4"  name="bradio"  value="">   



Ce n'est pas jolie, mais ça fonctionne.
2
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 4
6 août 2008 à 09:46
Finalement, j’ai trouvé

Si ça peu servir, je mets mon code a dispo.
J’ai utilisé du JavaScript, de plus, j’ai supprimé les notices.


<html>
<head>
<script language="javascript">
function toto()
{
var form1 = document.getElementById('form1');
var form5 = document.getElementById('form5');
var valeurtext = document.getElementById('text').value;
//document.write(valeurtext);
document.getElementById('text2').value = valeurtext;
//alert('lol');
document.forms['form1'].submit();
}
</script>

</head>
<body>
<table width="391" border="1">
  <tr>
    <td>    
    <form name="form1" method="POST"  action="">
<?   
	$odbc = odbc_connect( 'exemple_selection' , 'root' , '') or die ("Impossible de se connecter &agrave; la bas de donn&eacute;e") ;
    $sql="select * from nom order by nom";		
    $requete = odbc_do($odbc,$sql) or die( odbc_error());
        
		echo '<select name="nom" onChange="toto()">'; 
        echo '<option value="-1">Sélectionner un nom</option>'; 
            while ($resultat = odbc_fetch_array($requete))
            {$tx='';
                if (isset($_POST['nom']))
                     {if ($_POST['nom']==$resultat['numero']){$tx=' selected ';}else{ echo $tx='';}}
                     echo '<option value="'.$resultat['numero'].'"'.$tx.'>'.$resultat['nom'].'</option>';
            }
        echo '</select>';
	 	echo '<input type="hidden" name="text2" />';
 
?>
	</form> </td>
  </tr><form name="form5" method="POST"  action="TOTO.php"> 
  <tr>
    <td><input type="text" 	name="text" id="text"  value="<? echo $_POST['text2'];?>"/>
      <input type="submit" 	name="button" value="Envoyer"/>
	</td>
  </tr>
</form>
</table>
</body>
</html>

0
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 123
6 août 2008 à 12:18
Pouvez m'éclaircir svp :
1- Avec l'événement Onchange, avec le choix d'un élément dans la liste déroulante, le formulaire 1 sera valider (même si le form5 est vide)
2- Pourquoi vous utilisez deux formulaire ?
3- D'après le code, vous devez avoir un fichier toto.php pour taraiter les données du form5
-1
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 4 > amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010
6 août 2008 à 16:23
Pour répondre a amjahed, j’utilise 2 formulaires
1 pour la sélection dans la liste déroulante et l’autre au moment du bouton envoyer.

-1
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 4
6 août 2008 à 16:23
Et sinon, j’ai la même question, mais avec des boutons radio !!

Comment je peu garder les cases déjà sélectionné?
-1
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 123
5 août 2008 à 14:05
Salut,
pouvez-vous donner une adresse pour voir la page en action.
-1
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 4
5 août 2008 à 16:17
J'ai remplacé onChange="form1.submit()" par onChange="toto()"
echo '<select name="nom" onChange="ap_selection()">'; 



et dans le head je lui ai ajouté du javascript


<head>
<script language="javascript">
function ap_selection()
{
document.forms['form1'].submit();
}
</script>
</head>


Mais je ne sais quoi mettre dans la fonction !
-1

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

Posez votre question
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 123
5 août 2008 à 16:37
Ca ne va résoudre le problème, puisque le formulaire va être envoyé dés la sélection d'une valeur dans la liste déroulante.

Remarques :
1 - Il n'y a pas de traitement défini dans la ligne,
<form name="form1" method="POST"  action="">

2 - La liste déroulante appartient à un autre formulaire 'form5'

Je vous propose de voir mon post :
http://www.commentcamarche.net/forum/affich 6845075 script traitement formulaire#1
-1
nawak.seb Messages postés 65 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 octobre 2013 4
5 août 2008 à 14:11
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table width="391" border="1">
  <tr>
    <td>    
    <form name="form1" method="POST"  action="">
<?   
	$odbc = odbc_connect( 'exemple_selection' , 'root' , '') or die ("Impossible de se connecter &agrave; la bas de donn&eacute;e") ;
    $sql="select * from nom order by nom";		
    $requete = odbc_do($odbc,$sql) or die( odbc_error());
        
		echo '<select name="nom" onChange="form1.submit()">'; 
        echo '<option value="-1">Sélectionner un nom</option>'; 
            while ($resultat = odbc_fetch_array($requete))
            {$tx='';
                if (isset($_POST['nom']))
                     {if ($_POST['nom']==$resultat['numero']){$tx=' selected ';}else{ echo $tx='';}}
                     echo '<option value="'.$resultat['numero'].'"'.$tx.'>'.$resultat['nom'].'</option>';
            }
        echo '</select>';
?>
	</form> </td>
  </tr><form name="form5" method="POST"  action="TOTO.php"> 
  <tr>
    <td>
      <input type="text" name="textfield" id="textfield" />
      <input type="submit" name="button" value="Envoyer"/>
	</td>
  </tr>
</form>
</table>
</body>
</html>



J'utilise une base Access «exemple_selection »:
Une table "nom" avec 2 champs « numero » en clé primaire et
« nom »

La manip est simple,
En premier , j’écris quelque chose dans le champ.
En second, je sélectionne un nom dans la liste déroulante,

Lors de la sélection, le champ texte s’efface.
-2
amjahed Messages postés 335 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 21 mars 2010 123
5 août 2008 à 15:55
Dans la ligne :
echo '<select name="nom" onChange="form1.submit()">'; 

Le contenu du formulaire est envoyé et la page est réinitialisée.
-1