|
|
|
|
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
Quand l'impossible devient possibleConfiguration: Windows XP
Internet Explorer 7.0
<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 à la bas de donné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. Quand l'impossible devient possible |
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 ! Quand l'impossible devient possible |
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.
<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 Je ne suis pas le biologiste, je suis juste son guide dans la forêt. J'utilise : Ubuntu, OpenOffice, Firefox, GIMP, Inkscape, 7zip, audacity ... |
Finalement, j’ai trouvé
<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 à la bas de donné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>
Quand l'impossible devient possible
|
Après longue réflection , j'ai trouvé une solution:
<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. Quand l'impossible devient possible |