Garder en memoire la valeur d'un champ

Eléphant du PHP | 62 Messages

17 juil. 2007, 23:41

Bonjour,

Je vous es mie un petit exemple que vous pouvez testez.

Mon problème es le suivant

Je voudrais savoir si il est possible de garder en mémoire le texte écrit dans le champ après un rafraîchissement de la page.

Essayer le code suivant puis sélectionner un texte dans le select

Code : Tout sélectionner

<script type="text/javascript" language="javascript"> <!-- function twAller_produit(_url,_cadre,_target) { if (_cadre) { parent._cadre.location.href = _url; } else if (_target) { _target = window.open(_url,_target); } else { window.location.href = _url; } } //--> </script> <td><input type=text size=50 name="toto" value="Ecrire quelque chose ici"></td><br> <select name="Menu_produit" onChange="sel = this.options[this.selectedIndex].value; if (sel) { twAller_produit(sel,'','') }"> <option>Sйlection par nom de client</option> <form name=req action="" method=post> <option>?client=<?=$ligne[0]?>david</option> <option>?client=<?=$ligne[0]?>sandrine</option <option>?client=<?=$ligne[0]?>mimi</option </select> </form>
Merci

Mammouth du PHP | 1776 Messages

17 juil. 2007, 23:46

mot clef pour recherche sur phpfrance : les sessions php

Nous avons d'excellents tutoriaux
Pense à les consulter :wink:
Modifié en dernier par DocType le 17 juil. 2007, 23:52, modifié 1 fois.

Eléphant du PHP | 62 Messages

17 juil. 2007, 23:49

Bonjour,


J’ai fait des recherches mais je dois avouer que je n’arrive pas.

Vous pouvez me donner un exemple correspondants a mon code plus haut.
Merci d'avance

Eléphanteau du PHP | 48 Messages

18 juil. 2007, 10:46

tu peux pas faire passer tout ça en POST ou en GET ?

sinon sur :

http://fr3.php.net/manual/fr/function.session-start.php

tu trouve cela qui te monter comment passer des infos d'une page à l'autre
à l'aide des séssions

Exemple 2297. Exemple de session : page1.php

Code : Tout sélectionner

<?php // page1.php session_start(); echo 'Bienvenue à la page numéro 1'; $_SESSION['favcolor'] = 'vert'; $_SESSION['animal'] = 'chat'; $_SESSION['time'] = time(); // Fonctionne si le cookie a été accepté echo '<br /><a href="page2.php">page 2</a>'; // Ou bien, en indiquant explicitement l'identfiant de session echo '<br /><a href="page2.php?' . SID . '">page 2</a>'; ?>
Après avoir vu la page page1.php avec un navigateur, la seconde page page2.php va magiquement afficher les données de session. Lisez la référence sur les sessions pour des informations sur la propagation des identifiants de session, et l'utilisation de la constante SID.

Exemple 2298. Exemple de session : page2.php

Code : Tout sélectionner

<?php // page2.php session_start(); echo 'Bienvenue sur la page numéro 2<br />'; echo $_SESSION['favcolor']; // vert echo $_SESSION['animal']; // chat echo date('Y m d H:i:s', $_SESSION['time']); // Vous pourriez utiliser la constante SID ici, tout comme dans la page page1.php echo '<br /><a href="page1.php">page 1</a>'; ?>
-- fight the void --

Mammouth du PHP | 1776 Messages

18 juil. 2007, 10:52

Bonjour,


J’ai fait des recherches mais je dois avouer que je n’arrive pas.

Vous pouvez me donner un exemple correspondants a mon code plus haut.
Merci d'avance
voici un exemple ne correspondant pas à ton code. A toi de l'adapter à la situation, sachant que tout est très clairement expliqué. Te donner un exemple correspondant à ton code c'est te forunir la réponse sur un plateau... :roll:
http://www.phpfrance.com/tutoriaux/inde ... ssions-php

Eléphant du PHP | 62 Messages

18 juil. 2007, 13:23

Bonjour,

Ca ne fonctionne pas car mon problème n’à rien avoir avec deux pages mais tous est dans la même page

Un exemple tester le script plus haut : une personne écrit un ‘tata et tonton’ dans le champ abr Apres elle sélectionne une options dans le select (en sachant que ce select actualise la page).

Mon problème c’est est que le champ abr redevient par défaut, alors que moi je veut que le champ abr garde la valeur écrite avant l’actualisation de la page

Merci

Invité
Invité n'ayant pas de compte PHPfrance

18 juil. 2007, 13:42


Mammouth du PHP | 536 Messages

18 juil. 2007, 13:45

en fait je crois qu'il souhaite garder la valeur de ces variables après le rafraichissement de sa page ds après avoir envoyer son formulaire.
Pour ça, tu peux utiliser les variables de session.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 62 Messages

18 juil. 2007, 14:04

Bonjour,

Mon site http://www.coversfr.com/?client=SOUFFLETTE%20BEC%20LONG

Je vous donne le code complet avec la base de donner

Code source

Code : Tout sélectionner

<table align="center"> <td>Tapez un texte ici puis selectionner un article dans le menu deroulent</td> <tr><td> <input type="text" id="abr" name="abr" value="Voila le code presque complet" style="border-color:blue; border-style:dotted;" onkeyup="treatquery();" / size="60"></td></tr> </table> <table border="2" align="center" width="571" height="6"> <tr><td align="center"><b><?=ACTION?></b><td align="center"><b><?=DESC?></b></td><td align="center"><b><?=QTY?></b></td><td align="center"><b><?=UNIT?></b></td><td align="center"><b><?=TAX?></b></td><td align="center"><b><?=TOTAL?></b></td></tr> <? for($i=0; $i< 5; $i++){ ?> <tr> <td><input type="button" id="myButton" value="Ajouer" onclick="envoi_<?=$i?>();" style="border-color:blue; border-style:dotted;" /></td> <td> <input type=text size="50" id="d<?=$i?>" name="d<?=$i?>" value="<? $d0 = addslashes(trim($_GET['d0'])); ?>" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=3 name="n<?=$i?>" value="" onchange="checkNumber(this);subSum(<?=$i?>);" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=6 name="p<?=$i?>" value="" onchange="checkNumber(this);subSum(<?=$i?>);" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=5 name="ta<?=$i?>" value="<?=$taxrate?>" onchange="checkNumber(this);remind(this.value);subSum(<?=$i?>);" style="border-color:rgb(255,102,0); border-style:dotted;"></td> <td><input type=text size=7 name="to<?=$i?>" value="" onchange="checkNumber(this);subSum(<?=$i?>);redoTotal();" style="border-color:rgb(255,102,255); border-style:dotted;"></td> </tr></tr> <? } ?> </table><br> <script type="text/javascript" language="javascript"> <!-- function twAller_produit(_url,_cadre,_target) { if (_cadre) { parent._cadre.location.href = _url; } else if (_target) { _target = window.open(_url,_target); } else { window.location.href = _url; } } //--> </script> <?php define('DBHOST', 'db225.********'); define('DBUSER', 'db******6'); define('DBPASS', 'H********7'); define('DBNAME', 'd******6'); $link = mysql_connect(DBHOST, DBUSER, DBPASS); mysql_select_db(DBNAME, $link) or die("Impossible d'acce`der a` la base de donne'es"); $requete="select name from fiche_products"; $resultat2requete=mysql_query($requete); $nbr2champs=mysql_num_fields($resultat2requete); $nbr2lignes=mysql_num_rows($resultat2requete); ?> <center><select name="Menu_produit" onChange="sel = this.options[this.selectedIndex].value; if (sel) { twAller_produit(sel,'','') }"> <option>Sйlection par nom de client</option> <form name=req action="" method=post> <? while ($ligne=mysql_fetch_row($resultat2requete)) { ?> <option value="?client=<?=$ligne[0]?>"> <? if ($ligne != " "){ echo $ligne[0];} ?> </option> <? } ?> </select> <!--<input type="submit" name=envoyer value="cherche dans base" />--> </form> <? mysql_close($link); ?> <!-- --><!-- --><!-- --> <!-- --><!-- --><!-- --> <?php define('DBHOST', 'db225.********'); define('DBUSER', 'db******6'); define('DBPASS', 'H********7'); define('DBNAME', 'd******6'); $link = mysql_connect(DBHOST, DBUSER, DBPASS); mysql_select_db(DBNAME, $link) or die("Impossible d'acce`der a` la base de donne'es"); $client=$_GET["client"]; $requete="select `name` , `description` , `quantity` , `price` , `tax` , `notes` from fiche_products where name = '$client'"; $resultat2requete=mysql_query($requete); $nbr2champs=mysql_num_fields($resultat2requete); $nbr2lignes=mysql_num_rows($resultat2requete); ?> <? while ($ligne=mysql_fetch_row($resultat2requete)) { if ($ligne != " ") { ?> <br><table> <? echo '<input type="text" size="80" id="toto0" name=toto0" value="', $ligne[0], '" onchange="myButton.click();" style="border-color:blue; border-style:dotted;"/><br>'; echo '<input type="text" size="80" id="toto1" name=toto1" value="',$ligne[1], '" onchange="myButton.click();" style="border-color:blue; border-style:dotted;" /><br>'; echo '<input type="text" size="80" id="toto2" name=toto2" value="', $ligne[2], '" onchange="myButton.click();" style="border-color:blue; border-style:dotted;" /><br>'; echo '<input type="text" size="80" id="toto3" name=toto3" value="', $ligne[3], '" onchange="myButton.click();" style="border-color:blue; border-style:dotted;" /><br>'; echo '<input type="text" size="80" id="toto4" name=toto4" value="', $ligne[4], '" onchange="myButton.click();" style="border-color:blue; border-style:dotted;" /><br>'; echo '<input type="text" size="80" id="toto5" name=toto5" value="', $ligne[5], '" onchange="myButton.click();" style="border-color:blue; border-style:dotted;" /><br>'; } } ?> </table></center> <!-- --><!-- --><!-- --> <!-- --><!-- --><!-- --> <?php $ligne = array( 'ligne 1', 'ligne 2', 'ligne 3', 'ligne 4', ); ?> <script type="text/javascript"> //<![CDATA[ function $() { var elements = new Array(); for (var i=0,len=arguments.length;i<len;i++) { var element = arguments[i]; if (typeof element == 'string') { var matched = document.getElementById(element); if (matched) { elements.push(matched); } else { var allels = (document.all) ? document.all : document.getElementsByTagName('*'); var regexp = new RegExp('(^| )'+element+'( |$)'); for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]); } if (!elements.length) elements = document.getElementsByTagName(element); if (!elements.length) { elements = new Array(); var allels = (document.all) ? document.all : document.getElementsByTagName('*'); for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]); } if (!elements.length) { var allels = (document.all) ? document.all : document.getElementsByTagName('*'); for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]); } } else elements.push(element); } if (elements.length == 1) return elements[0]; else return elements; } //]]> </script> <script> function envoi_0() { $('d0').value = $('toto0').value; $('n0').value = $('toto2').value; $('p0').value = $('toto3').value; $('ta0').value = $('toto4').value; } </script> <script> function envoi_1() { $('d1').value = $('toto0').value; $('n1').value = $('toto2').value; $('p1').value = $('toto3').value; $('ta1').value = $('toto4').value; } </script> <script> function envoi_2() { $('d2').value = $('toto0').value; $('n2').value = $('toto2').value; $('p2').value = $('toto3').value; $('ta2').value = $('toto4').value; } </script> <script> function envoi_3() { $('d3').value = $('toto0').value; $('n3').value = $('toto2').value; $('p3').value = $('toto3').value; $('ta3').value = $('toto4').value; } </script> <script> function envoi_4() { $('d4').value = $('toto0').value; $('n4').value = $('toto2').value; $('p4').value = $('toto3').value; $('ta4').value = $('toto4').value; } </script> </select></form> <? $var = $_SESSION['tata0']; ?>


Base de donner

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 2.6.4-pl3 -- http://www.phpmyadmin.net -- -- Serveur: *********** -- Gйnйrй le : Mercredi 18 Juillet 2007 а 13:57 -- Version du serveur: 4.0.27 -- Version de PHP: 4.3.10-200.schlund.1 -- -- Base de donnйes: `d***********6` -- -- -------------------------------------------------------- -- -- Structure de la table `fiche_products` -- CREATE TABLE `fiche_products` ( `product_id` int(11) NOT NULL auto_increment, `name` varchar(128) NOT NULL default '', `description` text NOT NULL, `quantity` int(11) NOT NULL default '0', `price` decimal(10,2) NOT NULL default '0.00', `tax` decimal(12,1) NOT NULL default '0.0', `notes` text NOT NULL, PRIMARY KEY (`product_id`) ) TYPE=MyISAM AUTO_INCREMENT=22 ; -- -- Contenu de la table `fiche_products` -- INSERT INTO `fiche_products` VALUES (1, 'AGRAFEUSE CLOUEUSE PNEUMATIQUE', 'Agrafeuse cloueuse pneumatique. Livrйe en mallette. Capacitй de 15 а 40 mm.', 1, 199.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (2, 'SOUFFLETTE BEC COURT', 'Soufflette air comprimй а bec court. Livrйe avec raccord standard а baоonnette. Fabrication Italie garantie 2 ans.', 1, 4.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (3, 'SOUFFLETTE BEC LONG', 'Soufflette air comprimй а bec long. Livrйe avec raccord standard а baоonnette. Fabrication Italie garantie 2 ans.', 1, 5.30, 19.6, ''); INSERT INTO `fiche_products` VALUES (4, 'POMPE A GRAISSE PNEUMATIQUE', 'Pompe а graisse pneumatique capacitй 400ml. Gamme Expert', 1, 32.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (5, 'PISTOLET DE PULVERISATION', 'Pistolet pneumatique de pulvйrisation. Fabrication Italie. Pour projection de tout liquide non corrosif ( dйsherbant, gas-oil, huile… ).', 1, 14.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (6, 'PISTOLET PEINTURE A GRAVITE', 'Pistolet а peinture а gravitй professionnel. Modиle en aluminium а rиglages multiples/', 1, 24.00, 19.6, 'fgdsgs fdgsdg fdg sdfg'); INSERT INTO `fiche_products` VALUES (7, 'PISTOLET PEINTURE PROFESSIONNEL', 'Pistolet pneumatique pour peinture. Godet aluminium autoclave, buse laiton. Couvercle de rйservoir en mйtal. Fabrication Italie.', 1, 24.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (8, 'PISTOLET POUR ENDUIT', 'Pistolet pneumatique pour enduit avec godet а gravitй', 1, 40.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (9, 'MARTEAU BURINEUR PNEUMATIQUE H', 'Marteau burineur pneumatique livrй avec 4 burins queue hexagonale : 1 pointerolle, 1burin plat droit, un burin йchancrй а dйcouper, un burin plat biseau.', 1, 24.00, 19.6, ''); INSERT INTO `fiche_products` VALUES (10, 'MARTEAU BURINEUR PNEUMATIQUE R', 'Marteau burineur pneumatique livrй avec 4 burins queue ronde : 1 pointerolle, 1burin plat droit, un burin йchancrй а dйcouper, un burin plat biseau.', 1, 17.00, 19.6, '2222222222222222222222222');
Merci

Mammouth du PHP | 1776 Messages

18 juil. 2007, 14:49

cela n'avancera à rien, on ne fera pas le script à ta place. Les solutions t'ont été apporté et je les repète:
- utiliser $_POST ou $_SESSION (même sui ce n'est que sur une seule page cela fonctionne très bien :roll: )
- utiliser if() et isset()
- revoir ton cours sur les value des input en html

Là, tu as réellement TOUT pour le faire, suffit de faire quelques recherches, de réflechir et tu dois savoir faire ton script. :wink:

Eléphant du PHP | 62 Messages

18 juil. 2007, 15:05

Bonjour,

Avez vous au moin tester avec mon script car moi j'ai tous fait mais ca ne donne rien
Si j’ai pas d’exemple je ne peut pas le faire,

merci quand même d’avoir répondu.

Mammouth du PHP | 1776 Messages

18 juil. 2007, 15:16

Bonjour,

Avez vous au moin tester avec mon script car moi j'ai tous fait mais ca ne donne rien
Non, je ne passe pas ma vie à essayer les scripts et les débugguer, surtout lorsque je comprends le souci.
Si j’ai pas d’exemple je ne peut pas le faire,
http://fr3.php.net/manual/fr/language.v ... efined.php
ou
http://www.phpfrance.com/tutoriaux/inde ... ssions-php

Allez, je vais encore être plus gentil...
<input <?php if(isset($_POST["ton_champ"])) echo " value='".htmlentities($_POST["ton_champ"],ENT_QUOTES)."'"; ?>>
Me demande pas ou le mettre et me dit pas qu'il manque des choses, c'est volontaire. Tu as tout pour le faire :wink:

Eléphant du PHP | 62 Messages

18 juil. 2007, 17:02

Bonjour,

Oui ça je l’ai déjà fais tester et re-tester mais ça ne fonctionne qu’avec un bouton submit ou un rafraîchissement classique

Moi j’utilise une fonction javascript qui remet tous a zéro

Ne confondais pas entre

Code : Tout sélectionner

<SCRIPT language="JavaScript"> window.location.reload() </script>
et

Code : Tout sélectionner

<script type="text/javascript" language="javascript"> <!-- function twAller_produit(_url,_cadre,_target) { if (_cadre) { parent._cadre.location.href = _url; } else if (_target) { _target = window.open(_url,_target); } else { window.location.href = _url; } } //--> </script>

Merci

Mammouth du PHP | 1776 Messages

18 juil. 2007, 17:13

Je voudrais savoir si il est possible de garder en mémoire le texte écrit dans le champ après un rafraîchissement de la page
Oui ça je l’ai déjà fais tester et re-tester mais ça ne fonctionne qu’avec un bouton submit ou un rafraîchissement classique

Moi j’utilise une fonction javascript qui remet tous a zéro
Faut savoir... au début tu soumet ton problème qui conserve pas ses paramètres après rafraichissement, et la tu dis que tu remet tout a zero en javascript... :roll:
Qu'importe la solution utilisé, tu as toute les cartes en main pour gérer ton problème. Et pour rappel, pour valider un formulaire et récupérer ses données on passe obligatoirement pas un submit...
A toi de t'adapter à ce qui est faisable ou non.

Eléphant du PHP | 62 Messages

18 juil. 2007, 17:18

Bonjour,

Merci quand meme,