Remplir un champ texte dynamique
Bonjour à tous,
Merci par avance de vos retours sur un problème qui est surement de base mais je n'arrive pas à comprendre le mécanisme pour, comme le dit l'intitulé, afficher dans un champ texte d'un formulaire appelé depuis une fichier JS, la/les données passées en paramètre.
Bon ça c'est le blabla, maintenant passons au code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function logIn()
{ try
{ /* Manipuler un objet avec JQuery : $(#idObject).propriétés/méthodes */
var serialData = $( "#frmLogIn" ).serialize();
alert (serialData);
$.ajax
( { type: "POST",
url: "sqlLogIn.php",
data: serialData,
dataType: "json",
success: function(dataSQL, statut)
{ var page = "formulaire.html?id=" + dataSQL[0]["IDPARTICIPANT"];
window.location.replace(page);
},
error: function(dataSQL, statut)
{ alert ("error sqlConnect.js : " + dataSQL.erreur);
}
}
);
}
catch (e)
{ alert ('An error has occurred: '+ e.message);
}
} |
Ma fonction sqlConnect.js ==> Connexion OK.
Mon problème commence avec la ligne window.location.replace(page); qui appelle le formulaire suivant::calim2:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
....
<body>
<div id="wb_formulaire" style="position:absolute;left:148px;top:57px;width:1102px;height:735px;z-index:3;">
<form name="formulaire" method="post" action="" enctype="text/plain" id="formulaire">
<div id="wb_Image1" style="position:absolute;left:8px;top:7px;width:184px;height:75px;z-index:0;">
<img src="images/lapaeyreLogo.png" id="Image1" alt="" style="width:184px;height:75px;"></div>
<div id="wb_YouTube1" style="position:absolute;left:5px;top:99px;width:188px;height:167px;z-index:1;">
<iframe width="188" height="167" src="http://www.youtube.com/embed/MaVideo?rel=1&autoplay=1&version=3&autohide=0&theme=dark" frameborder="0"></iframe>
</div>
<div id="wb_Text1" style="position:absolute;left:355px;top:12px;width:514px;height:32px;text-align:center;z-index:2;">
<span style="color:#FFFFFF;font-family:Arial;font-size:27px;"><strong>participantInfo</strong></span></div>
</form>
</div>
</body> |
Et mon objectif est d'afficher dans id="wb_Text1" la valeur passée en paramètre via window.location.replace(page); depuis le fichier sqlConnect.js et correspondante à ?id=" + dataSQL[0]["IDPARTICIPANT"] .
Question subsidaire, le texte de l'objet id="wb_Text1" peut-il être modifié ou faut-il un autre objet?
Bon j'espère avoir été compréhensible et bien sûr, toute aide est la bien venue:lol:
RIen ne vaut de trouver par soi-même
Après moult recherches, j'ai trouvé cette solution:
Depuis la page JavaScript appelante:
Code:
1 2 3
| var page = "formulaire.html" ;
var iduser = dataSQL[0]["IDPARTICIPANT"];
window.location.replace(page+ "?id=" + iduser); |
Dans la page appelée
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <html>
.......
</head>
......
<script type="text/javascript" src="swfobject.js"></script>
<script src="jquery-1.9.1.min.js"></script>
<script src="formulaire.js"></script>
</head>
<body onload="initFormulaire();return false;">
.....
</body>
</html> |
Dans la page formulaire.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function initFormulaire()
{
alert ("appel onload: ca marche");
var urlParam = extractUrlParams();
alert(urlParam["id"])
document.forms.formulaire.txtUser.value=urlParam["id"]; // Pas de librairie JQuery necessaire
//$("#txtUser").val(urlParam["id"]); //==> Necessite l'include JQuery
}
function extractUrlParams()
{ /* Fonction de récupération des paramètres GET de la page
* @return Array Tableau associatif contenant les paramètres GET */
var urlParam = location.search.substring(1).split('&');
var pArray = new Array();
for (var i=0; i<urlParam.length; i++)
{ var x = urlParam[ i ].split('=');
pArray[x[0]]=x[1]; // MyArray['NomChamp']='valeur'; ->le nom ['NomChamp'] sera associée à la ligne et avec la valeur 'valeur'. Cf. tableau associatif dim 1*/
}
alert(pArray["id"]);
return pArray;} |
Bon ça fonctionne mais c'est surement une solution à l'arrache
Bonne lecture:yaisse3::yaisse2::yaisse1: