this.disabled=true qui ne désactive pas le bouton

Petit nouveau ! | 1 Messages

09 août 2011, 14:55

Bonjour,
Apres plusieurs heures de recherche je vous demande de l'aide concernant quelque chose que je n'arrive pas à comprendre... Si quelqu'un peut m'aider ce serait génial! :D
J'explique la situation. J'ai une page php (fmUpdateADResource.php) qui contient deux input text (Login et Domaine).

A l'affichage ces infos sont remontées via la BDD. (Partie <!-- AFFICHAGE DE LA FEUILLE -->)
A la soumission du formulaire (Partie <!-- SAISIE DU FORMULAIRE -->), en cliquant sur le bouton Enregistrer la page ne soumet rien et se recharge tout simplement.. Alors que le probleme ne se pose pas si j'enleve "this.disabled=true" dans le input text appelé "ACTION_UPDATE_OK"

En gros ce que je souhaiterai avoir c'est, lors d'un clique sur le bouton "Enregistrer", que ce bouton se désactive et qu'il fasse son action de POST ACTION_UPDATE_OK.

Ci-dessous, le code de la page en son intégralité.

<!-- OUVERTURE DE SESSION -->
<?php 
session_start();
if (!isset($_SESSION['login'])) {
	header ('Location: index.php');
	exit();
}?>

<!-- FICHIER NECESSAIRE -->
<?php include './config/config.php'; ?>

<!-- SELECTION DU MENU -->
<?php $MENU_SELECTIONNE = "RESSOURCES"; ?>

<!-- AFFICHAGE DE LA FEUILLE  -->
<?php
//SI $_GET['RES_ADUSER_KEY']) EST VIDE ON REDIRIGE VERS INDEX
if (empty($_GET['RES_ADUSER_KEY'])) header ('Location: index.php');
$RES_ADUSER_KEY = $_GET['RES_ADUSER_KEY'];

//CONNEXION A LA BASE DE DONNEES
$BASE = mysql_connect ($DATABASE_HOST, $DATABASE_LOGIN, $DATABASE_PASSWORD);
mysql_select_db ($DATABASE_NAME, $BASE);
mysql_query("SET NAMES UTF8");

//RECUPERATION DES INFORMATIONS
$REQ_SQL = "SELECT * FROM USR,RES_ADUSER,ORG WHERE RES_ADUSER_KEY =".$RES_ADUSER_KEY." AND USR.USR_KEY = RES_ADUSER.RES_ADUSER_USR_KEY AND USR.USR_ORGANISATION = ORG_KEY";
$RESULTAT_REQ = mysql_query($REQ_SQL); 
$NB_RESULT = mysql_num_rows($RESULTAT_REQ);

//AJOUT DES DONNEES DANS UN TABLEAU
while($DATA = mysql_fetch_assoc($RESULTAT_REQ)) 
	{ 
		$_SESSION['RES_ADUSER_KEY'] = $RES_ADUSER_KEY = $DATA['RES_ADUSER_KEY'];
		$_SESSION['RES_ADUSER_LOGIN'] = $RES_ADUSER_LOGIN = $DATA['RES_ADUSER_LOGIN'];
		$_SESSION['RES_ADUSER_DOMAINE'] = $RES_ADUSER_DOMAINE = $DATA['RES_ADUSER_DOMAINE'];
		$_SESSION['ORG_VALUE'] = $ORG_VALUE = $DATA['ORG_VALUE'];

		$RES_ADUSER_PASSWORD = $DATA['RES_ADUSER_PASSWORD'];
		$RES_ADUSER_STATUS = $DATA['RES_ADUSER_STATUS'];
		$RESULT_TAB = "<table id='content' style='width: 60%;'>";
		$RESULT_TAB.= "<tr>";
		$RESULT_TAB.= "<td align='right'><b>Login :</b></td>";
		$RESULT_TAB.= "<td align='left'><input type=text value='$RES_ADUSER_LOGIN' name=\"RES_ADUSER_LOGIN\"></td>";
		$RESULT_TAB.= "</tr>";
		$RESULT_TAB.= "<tr>";
		$RESULT_TAB.= "<td align='right'><b>Domaine :</b></td>";
		$RESULT_TAB.= "<td align='left'><input type=text value='$RES_ADUSER_DOMAINE' name=\"RES_ADUSER_DOMAINE\" readonly onClick=\"OUVRIR_POPUP(500,600,'fmLookup.php', 'FORM', 'RES_ADUSER_DOMAINE','Veuillez entrer un domaine et cliquez sur Rechercher','LKU','LKU_VALUE','LKU_TYPE','ORGANISATION_DOMAINE','LKU_VALUE','LKU_VALUE','LKU_DESCRIPTION');\"></td>";
		$RESULT_TAB.= "</tr>";
		$RESULT_TAB.= "</table>";
	}
	
?>


<!-- SAISIE DU FORMULAIRE -->
<?php 
//ENVOI DATAS DANS LA BASE DE DONNEES
if(isset($_POST["ACTION_UPDATE_OK"]))
{
	//CONNEXION A LA BASE DE DONNEES
	$BASE = mysql_connect ($DATABASE_HOST, $DATABASE_LOGIN, $DATABASE_PASSWORD);
	mysql_select_db ($DATABASE_NAME, $BASE);
	mysql_query("SET NAMES UTF8");
	
	//VERIFICATIONS
	if ($RES_ADUSER_LOGIN == "" OR $RES_ADUSER_DOMAINE == "")  
	{
		$INFO = "<div align='center'><b>Veuillez renseigner tous les champs.</b></div>";
	} 
	else 
	{
		//MODIFICATION SUR L'ENVIRONNEMENT CIBLE
		$AD_SERVER = "192.168.126.131";
		$AD_USER = "OIMNETWORK\OIMNETWORK_U_ADMIN";
		$AD_PASSWORD = "P@ssword14";
		$LDAP_DN = "dc=".$_SESSION['RES_ADUSER_DOMAINE'].",dc=com";
		
		//CONNEXION A L'AD
		@$DS = ldap_connect($AD_SERVER);
		
		//BINDING
		ldap_set_option($DS, LDAP_OPT_PROTOCOL_VERSION, 3);
		@$R = ldap_bind($DS, $AD_USER, $AD_PASSWORD);
		if ($R)
		{
			//RECHERCHE DU COMPTE
			$FILTRE = "(&(cn=".$RES_ADUSER_LOGIN."))";
			$RESULT = ldap_search($DS, $LDAP_DN, $FILTRE);
			$ENTRIES = ldap_get_entries($DS, $RESULT);
			$DN=$ENTRIES[0]['dn'];
			
			//RECUPERATION DES DONNEES SAISIES
			$RES_ADUSER_LOGIN= mysql_real_escape_string($_POST['RES_ADUSER_LOGIN']);
			$RES_ADUSER_DOMAINE = mysql_real_escape_string($_POST['RES_ADUSER_DOMAINE']);
		
			//MODIFICATION DES ATTRIBUTS
			$USERDATA["sn"]="TEST"; //NOM
			$USERDATA["givenName"]="TEST"; //PRENOM
			$USERDATA['displayname'] = "TEST TEST"; //NOM AFFICHé
			$USERDATA['sAMAccountName'] = $RES_ADUSER_LOGIN; //LOGIN ANTERIEUR A WINDOWS 2000
			$USERDATA['UserPrincipalName'] = $RES_ADUSER_LOGIN."@".$_SESSION['RES_ADUSER_DOMAINE'].".com"; //NOM D'OUVERTURE DE SESSION
			ldap_modify($DS, $DN, $USERDATA);
		
			//MODIFICATION DU CN (DOIT DEPLACER LE COMPTE EN LE RENOMMANT)
			$NEWRDN = "cn=".$RES_ADUSER_LOGIN;
			$NEWPARENT = $_SESSION['ORG_VALUE'];
			ldap_rename($DS, $DN, $NEWRDN, $NEWPARENT, TRUE);
			
			//MODIFICATION EN BASE
			$REQSQL = "UPDATE RES_ADUSER SET RES_ADUSER_LOGIN='".$RES_ADUSER_LOGIN."', RES_ADUSER_DOMAINE='".$RES_ADUSER_DOMAINE."' WHERE RES_ADUSER_KEY='".$RES_ADUSER_KEY."'";
			mysql_query($REQSQL);

			//FERMETURE CONNEXION
			mysql_close();
			
			//PROGRESSION
			$_SESSION['PROGRESS'] = 0;

			//REDIRECTION
			header('Location: fmViewADResource.php?RES_ADUSER_KEY='.$RES_ADUSER_KEY);
		}
		else
		{
			//INFORMATION
			$INFO = "<div align='center'><b>Le serveur LDAP $AD_SERVER semble être injoignable et/ou les identifiants de connexion au serveur sont incorrects.</b></div>";
		}
	}
}
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo $PROJECT_NAME ?></title>
<link rel="stylesheet" type="text/css" href="style/style.css" />
</head>
<body>
<div id="content">
<br>
<div style="text-align: center;">
<?php include './config/fmHeader.php';?>
</div>
<?php include "fmMenu.php"; ?>
<table style="width: 40%;border-style:dashed;border-width:1px;">
<tr>
<td><img src="images/resource.png"/> <b>Ressource AD USER</b></td>
</tr>
</table>
<br>
<?php if (isset($INFO)) echo $INFO;?>
<br>
<?php 
if ($NB_RESULT==1)
{
	echo "<form name='FORM' method='POST'>";
	echo $RESULT_TAB;
	echo "<br><br>";
	echo "Ci-dessous, les actions disponibles.";
	echo "<br><br>";
	echo "<table id='content' style='width: 320px;' align='center'>";
	echo "<tr>";
	echo "<td align='right'>";
	echo "<input name='ACTION_UPDATE_OK' value='Enregistrer' type='submit' onClick=\"this.form.submit();this.value='En cours...';this.disabled=true;\">"; 
	echo "</form>";
	echo "</td>";
	echo "<td align='right'>";
	echo "<form action='fmViewADResource.php?RES_ADUSER_KEY=$RES_ADUSER_KEY' method='POST'>";
	echo "<input name='ACTION_RETOUR' value='Retour' type='submit'>";
	echo "</form>";
	echo "</td>";
	echo "<tr>";
	echo "</table>";
	echo "<br>";
}
?>
<br>
<?php include './config/fmFooter.php'; ?>
<br>
</div></body></html>

ViPHP
ViPHP | 2577 Messages

10 août 2011, 09:54

Bonjour,

Je pense qu'il faut annuler le "this.disabled=true" juste avant la soumission du formulaire et le réactiver peut être après.

Sauf erreur de ma part, les "input disabled" ne sont pas envoyé.