Statut : Non résolu[Javascript] Problème récupération variables
Posté par
Gobyver, le mercredi 14 juin 2006 à 12:10:38 Bonjour à tous,
j'ai récupéré des morceaux de scripts que j'ai réussi à intégrer et à faire fonctionner entre eux.
Il s'agit d'un petit formulaire avec un select sur le login, un input non modifiable contenant le password actuel et un autre input contenant le nouveau mot de pass. Le submit fait appel à une fonction javascript qui utilise la technologie AJAX, ce qui me permet via une page de traitement en php, de faire mes update où bon me semble.
Là où je bloque c'est sur le retour, j'aimerais que le premier input non modifiable name=\"souscat\" contienne le nouveau mot de passe, et là je bloque. Auriez-vous une idée. Voici mon code, un peu allégé :
<?
session_start(); // On relaye la session
if (session_is_registered("authentification"))
{
} else {
session_unset("authentification");
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
if(document.all && !window.opera)
{
//si Internet Explorer ou Opera
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else
{
//si Mozilla
var XhrObj = new XMLHttpRequest();
}
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
function gestionstatechange() {
var elt = document.getElementById('loading');
switch (XhrObj.readyState) {
case 1:
// 1 (loading) début du transfert des données : loading visible
elt.style.display="block";
// test à supprimer
//alert('1');
//break;
case 2:
// 2 (loaded) données transférées : loading visible
elt.style.display="block";
// test à supprimer
//alert('2');
//break;
case 3:
// 3 (interactive) les données reçues sont accssibles en partie : loading visible
elt.style.display="block";
// test à supprimer
//alert('3');
//break;
case 4:
//si la page cible est OK (code HTTP 200) et 4 (complete :les données sont complètement accessibles), loading caché
// NB : Firefox declanche avec "status" tant que le code de chargement n'est pas à 4
if (XhrObj.status == 200)
{
//définition de l'endroit d'affichage:
var content = document.getElementById("retour");
//on affecte à l'endroit d'affichage la valeur du fichier distant recupéré avec la propriété .responseText
content.innerHTML = XhrObj.responseText ;
// s'il y avait un Javascript à interpreter dans le fichier distant, on ecrirait : eval(XhrObj.responseText);
}
elt.style.display="none";
document.add.newpass.value = "";
// test à supprimer
//alert('Requete terminee');
//break;
//default:
// 0 (uninitialized) non initialisé
//alert('Le serveur est bloqué. Veuillez recommencer.');
//break;
}
}
// Fonction d'envoi des données sur le fichier PHP distant
function envoi(donnees, page) {
// On spécifie la page cible et les modalité d"envoi (true spécifie le mode asynchrone)
var sURL = "traitement_admin_password.php";
// on peut aussi utiliser GET ou HEAED
XhrObj.open("POST",sURL,true);
// declanche la fonction qui affiche le loading en fonction de l'etat de la requetet
XhrObj.onreadystatechange = gestionstatechange;
// et on execute la requete elle-meme ( send ) : header puisque c'est une methode POST, puis données
XhrObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XhrObj.send(donnees);
}
</script>
</head>
<body bgcolor="#F0F0F0">
<br><br>
<div id="div_form">
<form method="POST" action="" name="add" id="add">
<div class="titre">- : : : ESPACE ADMINISTRATION - PASSWORD : : : -</div>
<p align="center"></p>
<p align="center"><strong><u>Modification des Password</u></strong></p>
<table width="350" border="0" align="center" cellpadding="5" cellspacing="0" class="tableaux">
<tr>
<td width="40">Login </td>
<td width="144">
<?php
mysql_select_db($database_dbprotect, $dbprotect);
$query_users = "SELECT login,privilege FROM utilisateurs ORDER BY SOCIETE ASC"; // ORDER BY renvoi les données triées (ici par nom croissant)
$users = mysql_query($query_users, $dbprotect) or die(mysql_error());
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
?>
<select size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
<?php
while ($dt=mysql_fetch_row($users))
{
// Remplir la liste déroulante des catégorie
echo "<option value=".($dt[0]).">".($dt[0])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
?>
</select></td></tr><br><br>
<tr>
<td>Mot de pass actuel </td>
<td>
<span id="contenu">
<?php
// affichage des sous-catégorie appartenant à la première catégorie.
echo "<input type=\"text\" name=\"souscat\" id=\"souscat\" onFocus=\"this.blur()\"";
$rq="Select pass2 from utilisateurs where login='".$j."';";
$result= mysql_query ($rq) or die(mysql_error());
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo " value=".utf8_encode($dt[0])."><br>";
}
?>
</span>
</td></tr>
<br><br>
<tr>
<td>Nouveau mot de pass </td>
<td>
<input name="newpass" type="password" id="pass">
</td>
</tr>
<tr>
<td height="50" colspan="2"><div align="center">
<input type="button" name="Ok" value="Modifier" onClick="javascript:envoi('cat='+document.add.cat.value+'&souscat='+document.add.souscat.value+'&newpass='+document.add.newpass.value, 'traitement_admin_password.php')">
<div id="loading" style="display: none;"><img src="./ANIM_WAIT/new_anim_attente.gif" border="0"></div>
</div></td>
</tr>
</table>
</form>
<span id="retour"></span>
</div>
</body>
</html>
Merci Pour votre aide.
A bientôt.