Envoi de résultat bouton radio vers données postgresql

Résolu/Fermé
Dbl35 Messages postés 71 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 11 juillet 2015 - 14 févr. 2014 à 13:35
Dbl35 Messages postés 71 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 11 juillet 2015 - 20 mars 2014 à 16:04
Bonjour,

je ne sais pas si je suis dans le bon forum ?..

Je ne sais pas comment faire pour enregistrer dans postgres les résultats de radiobutton.
J'ai 5 choix possibles types
<html:form..
<tr..
<td ..<input type="radio" name="popup" value="1" onClick="R=1">
.. ainsi .. 5 fois de suite de R1 à R5

Je voudrais stocker dans postgres les R qui seront ensuite pris en charge par des triggers postgresql et me remplirons des champs de mon IHM ou se situent mes boutons radios.
Comment je peux faire ça ? je ne connais quasiment pas javascript.
J'ai essayé plusieurs modèles de script issus de forums mais je n'arrive pas à les faire fonctionner.

merci de vos aides ( je débute)
dan
A voir également:

1 réponse

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
20 févr. 2014 à 02:45
Bonjour,

Vous ne devez pas utiliser JavaScript, mais un script côté serveur (Servlet) qui va recevoir les données.

L'évènement
onClick
que vous utilisez n'est pas correcte, il suffit de récupérer la valeur du paramètre "popup" et il va contenir la valeur correspondante (spcifiée par l'attribut
value
).

Destination : J2EE, Servlet et surtout l'objet
request

Bon Courage.
0
Dbl35 Messages postés 71 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 11 juillet 2015
20 févr. 2014 à 14:01
Bonjour,

je vous remercie de votre intervention, depuis 8 jours je me prends la tête en essayant ce que je sais (avec mes bouquins) mais ça ne suffit pas.. du courage mais ce qu'il me manque le plus c'est la connaissance, plus j'avance et plus j'ai l'impression de ne plus rien savoir....

je vais travailler coté servlet, mais pouvez vous m'indiquer comment je vais entrer mon script servlet ,

Actuellement voila ou j'en suis, je ne suis pas sûr de bien m'expliquer ( je suis pas un pro, loin s'en faut).

J'ai ajouter une table (radutile) dans postgres pour collecter mon résultat radiobutton
Puis j'ai modifié tout mon html comme ceci :

</html:form
..
1// mes td d'installation de chaque bouton radio ( name commun = Rdp)
<td id="article" name="volradio" style="...">
<INPUT type="radio" id="RDp5" name="RdP" value="5" onClick="testRadio(this.form.RdP)" >
</td>

2// ma td de récupération de la value du bouton radio et de son envoi dans postgres
<td id="article" >
<html:text style="..." property="radutile" value="" name="RdP"></html:text>
<input id="resultRadiobouton" name="resultRadiobouton" type="text" value="">
</td>
.....
</html:form>

mon but est d'enregister mon onclick dans le "resultRadiobouton" de ma td 2 et de le transférer dans "property=radutile" de la même td, qui l'enverra ensuite dans postgresql


j'ai ensuite essayé plusieurs scripts :

1er pour // fait apparaite le value de chaque bouton suivant le click = Ok
<script type="text/javascript">
function testRadio(radio) {
for (var i=0; i<radio.length;i++) {
if (radio[i].checked) {
alert("Système = "+radio[i].value)
}
}
}
</script>

les scripts suivants sont destinés à enregistrer le value de mon radiobutton dans mon "input" td 2 ( resultRadiobouton)
mais ça ne marche pas

2 ieme By NAME
<script type="text\javascript">
function testRadio(radio) {
var inp = document.getElementByName("resultRadiobouton");
for (var i=0; i<radio.length; i++) {
if (radio[i].checked) {
inp.value = radio[i].value;
console.log("systeme = "+radio[i].value);
}
}
}
</script>

3 ieme By Id
<script type="text\javascript">
function testRadio(radio) {
var inp = document.getElementById("resultRadiobouton");
for (var i=0; i<radio.length; i++) {
if (radio[i].checked) {
inp.value = radio[i].value;
console.log("systeme = "+radio[i].value);
}
}
}
</script>

j'ai aussi essayé ça Bt TagName :
</script>
<script type="text\javascript">
function testRadio(radio) {
var inp = document.getElementsByTagName("radutile"));
for (var i=0; i<radio.length; i++) {
if (radio[i].checked) {
inp.value = radio[i].value;
console.log("systeme = "+radio[i].value);
}
}
}
</script>

A priori tout cela ne sert à rien ?

Je vais essayer de suivre ce que vous m'indiquez, mais j'aurai besoin d'un guidage ( pas de le faire à ma place bien sûr) pour que je comprenne enfin..

pouvez vous me donner un coup de pouce dans ce sens ?

je bosse avec netbeans, struts sous linux

merci encore
dan
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
20 févr. 2014 à 19:55
"je bosse avec netbeans, struts sous linux "
Alors pourquoi tu veux tout faire en JavaScript ? Utilises tes actions Struts pour effectuer tes opérations en base de données.

"A priori tout cela ne sert à rien ?"
Si on parle de l'utilisation d'une boucle if (radio[i].checked) effectivement je ne vois pas à quoi ça sert. Lorsque ton formulaire effectue un get/post, il transmets déjà quelle case est cochée à ton action Struts côté Java, il n'y a donc plus qu'à récupérer les valeurs du formulaire et faire ton appel JDBC en conséquence.

Il n'est même pas nécessaire de faire du Struts pour faire ça, mais si tu fais du Struts et que tu ne fais pas ça, je me demande à quoi te sers ton Struts ?
0
Dbl35 Messages postés 71 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 11 juillet 2015
20 févr. 2014 à 20:55
bonsoir, merci de me répondre,

Je suis bien d'accord avec toi, mais je suis "obligé" de bosser avec struts ( que j'apprends avec un bouquin...) du fait qu'il s'agir d'une ancienne appliweb que je dois faire évoluer vers de nouvelles fonctionnalités.
Je suis contraint par l'existant.. et ça m'arrange pas du tout de bosser avec des outils que je n'ai jamais pratiqué, mais c'est comme ça, d'autant plus que je débute pour arranger le tout.. et repasser derrière des codes que tu n'as pas fait c'est pas si évident, mais comme je l'indique, j'ai pas le choix, il faut que je fasse avec..
Maintenant si je peux m'en passer ce sera avec plaisir.

mais voila,. tout est fait entre des balises html:form, intouchables sans s'engager dans des modifs des tags, de validations.xml ,de jpa et autres jsp ,etc..
alors que si je pouvais transférer mes données radio vers postgres, aprés je sais faire.

C'est pas ça le blocage ?
<html:javascript formName="CreateArticleForm" method="strutsValidation" dynamicJavascript="true" staticJavascript="true"/>
<html:form action="/createfinc.do" method="post" onsubmit="disabledOnSubmit(this);return validerFormPopup(this);">

ma td qui charge mabase par property="radutile" (colonne postgres)
<html:text style="....." property="radutile" value="" name="RdP"></html:text> /

Coté postgres c'est OK,mes triggers sont en place pour mouliner mes résultats radiobouton.

Mon problème est justement ce que tu me dis, ou et comment récupérer les résultats de mes radioboutons dans ma base.
Je ne comprends pas que même mes scripts classiques ne chargent pas mon input ?
<input id="resultRadiobouton" name="resultRadiobouton" type="text" value="">

Si tu as une solution simple, le compliqué ce sera pour plus tard, pour l'instant ce ne sont que des retouches.
Tu m'indique qu'il est possible de le faire sans struts, au moins dans un 1er temps, je suis preneur. tout de suite, struts après...

excuses moi si je ne suis pas clair, mais je bouine depuis 10 jours sur cette manip
svp, au plus simple.

Merci bien encore
dan
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
20 févr. 2014 à 21:11
"sans s'engager dans des modifs des tags, de validations.xml ,de jpa et autres jsp"
Commences déjà par regarder tes classes Java. Pour cela tu dois avoir un fichier struts.xml qui dispatche tes url sur telle classe et telle méthode. Si tu sais quelle classe gère l'url /createfinc.do tu pourras retrouver le point d'entrée, récupérer le contenu du formulaire et le traiter.
0
Dbl35 Messages postés 71 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 11 juillet 2015
21 févr. 2014 à 12:14
Bonjour,
j'ai bossé ton message, et voila ce que j'ai fait , c'est peut être long, mais je pense que ton "oeil" averti repérera vite une erreur, dis moi si je suis sur la bonne voie.

Le fichier s'appelle struts-config.xml qui me dirige effectivement vers mescl

<struts-config>
<form-beans>
..
<form-bean name="CreateIncForm" type="form.orgbtp.approvisionnement.articles.CreateIncForm"/>
..
<action-mappings>
..
<action scope="session" path="/displayInc" type="action.tr.appro.inc.DisplayIncAction" name="CreateIncForm" validate="false">
<forward name="success" path="/jsp/tr/appro/inc/display_inc.jsp"></forward>
</action>

<!--Action create Inc-->
<action input="/jsp/tr/appro/inc/display_inc.jsp" name="CreateIncForm"
path="/createInc"
scope="session"
type="action.tr.appro.inc.CreateIncAction" validate="true">
<forward name="success" path="/jsp/tr/appro/inc/display_inc.jsp" redirect="true" ></forward>
</action>

<!--Action modify Inc-->
<action input="/jsp/tr/appro/inc/display_articles.jsp"
name="CreateIncForm"
path="/modifyInc"
scope="session"
type="action.tr.appro.inc.ModifyIncAction" validate="true">
<forward name="success" path="/jsp/tr/appro/inc/display_inc.jsp" redirect="true" ></forward>
</action>

<!--Action delette Inc-->
<action input="/jsp/tr/appro/inc/display_inc.jsp"
name="CreateIncForm"
path="/deleteInc"
scope="session"
type="action.tr.appro.inc.DeleteIncAction" validate="false">
<forward name="success" path="/jsp/tr/appro/inc/display_inc.jsp" redirect="true" ></forward>
</action>
***********************************************************************************************

J'ai engagé ces modifs dans mes packages sources .java
(finalités = ajout d'un champ de récup de ma donnée radio)

1/ > public class CreateIncForm extends ActionForm {
// ajout ma récupération
private String radutile;
..
// ajout
public String getRadutile() {
return this.radutile;
}/*radio utile */
public void setRadutile(String radutile) {
this.radutile = radutile;
}/*radio utile*/
..
public void reset(ActionMapping mapping, HttpServletRequest request) {
super.reset(mapping, request);
this.radutile = "";
..
public String[] findInc(String id) {
..// colonne de ma table
res[29] = Strinpublic class CreateIncAction extends Action {

2/ > public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
if(request.getSession().getAttribute("logged") != null) {
System.out.println("Enregistrement de Inc ");
RelaisEjb leRelais = new RelaisEjb();
GestionIncRemote remote = (GestionIncRemote)leRelais.getRemote("java:comp/env/GestionIncBean");
CreateIncForm f = (CreateIncForm)form;
..
//ajout pour mon champ de recup "big decimal en base"
if(f.getRadutile().length() > 0) {
BigDecimal RadU = new BigDecimal(f.getRadutile()).setScale(2, RoundingMode.HALF_DOWN);
art.setArtDecRadiobouton(RadU);
}
..
j'ai aussi modifié d'autres class, mais avant pourrais tu me dire si je suis sur la bonne voie pour récupérer mon résultât radiobouton dans "radutile" ?

j'ai d'autres fichiers que j'ai modifiés... modify, delette et display,, tout c'est bien passé, mon champ de recup apparait (radutile) dans mon popup et quand j'y entre une donnée je la retrouve bien dans ma base

Maintenant, si j'ai bien compris, je dois ajouter mes radios boutons dans mon package sources
createIncForm ? C'est ça ?

merci encore
dan
0