Bonjour.
Je voudrais faire un formulaire en PHP qui stocke des enregistrements concernant des objets perdus dans une base mysql. mon problème est le suivant :
Le formulaire de gestion des objets perdus contient une liste déroulante nommée "typeobjet".
Si l'utilisateur choisit la valeur "Animaux", l'étiquette des trois champs de saisie qui suivent doit être "Race", "tatouage", "couleur de robe", pour toute autre valeur les étiquettes sont "marque" "modèle", "numéro de série".
Pour obtenir ce résultat, j'ai d'abord pensé que je pouvais récupérer la valeur de "typeobjet" dans une variable php AVANT LE POST. Mais quand je fais un echo($typeobjet), il n'affiche rien. Pourquoi ? Faut-il faire un rafraichissement de la page avant ou bien ne peut-on récupérer la valeur qu'après le post ?
Comme ça ne marchait pas j'ai fait un petit bout de code javascript (mais j'aurai préféré le faire en php). Par cette méthode, j'arrive à récupérer la valeur de ma liste ; en fonction de cette valeur, j'initialise trois variables pour les étiquettes des trois champs; Mais je n'arrive pas à utiliser ces variables à la fois dans le code php et dans le code javascript (je pense que c'est parce que php est côté serveur et javscript côté client, non ?)
Cela fait maintenant une semaine et demi que je galère, malgré les documentations php que j'ai pu lire : phpdebutant.org, php.net, etc....
Merci de me venir en aide.
Voici le code faux, qui ne marche pas avec le javascript :
html
head
script language="JavaScript" type="text/JavaScript"
!--
var txt1;
var txt2;
var txt3;
function recharger() {
if (document.insertion.typeobjet.value=="Animaux"){
document.write ("Animaux");
//txt1= "Race";
//txt2="Tatouage";
//txt3= "Robe (couleur)";
}
else {
document.write ("Autre");
//txt1= "marque";
//txt2="modèle";
// txt3= "numéro de série";
}
document.write ("6666");
document.location.reload();return(false);
}
// --
/script
title insertion de données en PHP :: partie 1/title
/head
body
form name="insertion" action="insertion2.php" method="POST"
table border="0" align="center" cellspacing="2" cellpadding="2"
tr align="center"
td
SELECT name="typeobjet" onChange="recharger()" size="1"
OPTION value="Animaux" Animaux/OPTION
OPTION value="Livre" Livre/OPTION
OPTION value="CD/DVD" CD/DVD/OPTION
OPTION value="Lithographie" Lithographie/OPTION
OPTION value="Pins" Pins/OPTION
OPTION value="Autre" Autre/OPTION
/SELECT
/td
td ?php echo($txt1); ? /td
td input type="text" name="marque" /td
/tr
tr align="center"
td ?php echo($txt2); ? /td
td input name="modele" type="text" id="modele" /td
/tr
tr align="center"
td ?php echo($txt3); ? /td
td input name="mumserie" type="text" id="mumserie" /td
/tr
tr align="center"
td observations/td
td input name="comentaire" type="text" id="comentaire" /td
/tr
tr align="center"
td colspan="2" input type="submit" value="insérer" /td
/tr
/table
/form
/body
/html
/pre
# récupérer valeur liste déroulante
Posté par Sebastian . Évalué à 2.
Le language PHP est interpreté du côté serveur.
Ce qui veut dire qu'il faut avant tout que la requête passe via le serveur pour ensuite afficher les données.
Si tu veux que le choix se fasse en temps réel, tu peux t'amuser avec le couple Javascript et PHP via la fonction Javascript XMLHTTPRequest.
Elle permet d'effectuer une requête sans devoir recharger la page.
http://www.toutjavascript.com/savoir/xmlhttprequest.php3
Mais bon, c'est plus un gadget qu'autre chose ;)
[^] # Re: récupérer valeur liste déroulante
Posté par nicolas . Évalué à 1.
[^] # Re: récupérer valeur liste déroulante
Posté par Sebastian . Évalué à 2.
Donc tu as tous les outils pour élaborer cela.
On ne va pas tout de même développer ton application ... ;)
Voici encore d'autres liens interessants :
La documentation officielle des developpeurs de Mozilla : http://developer.mozilla.org/en/docs/AJAX [en]
L'Ajax bien expliqué en exemples : http://qwix.media-box.net/index.php/2005/01/21/45-Xmlhttpreq(...) [fr]
[^] # Re: récupérer valeur liste déroulante
Posté par Sebastian . Évalué à 2.
[^] # Re: récupérer valeur liste déroulante
Posté par nicolas . Évalué à 1.
Merci à quelqu'un qui sait faire (pas de théorie) de bien vouloir reprendre mon code pour le corriger parce qu je ne m'en sors pas du tout !
Merci d'avance.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.