Bonjour,

j'ai un petit problème que je souhaiterais résoudre mais n'ayant pas de connaissances approfondies sur le sujet, je m'en remets à vous!

Voilà, je développe un site que je n'ai pas créé, et on m'a demandé de supprimer un maximum de fenêtres type "pop-up" pour les afficher dans un DIV spécifiquement mis en place pour ça.

J'ai déjà trouvé comment afficher ces pages normalement ouvertes dans un pop-up grâce à une fonction javascript et l'utilisation de xmlHTTPRequest.

Le soucis, c'est que certaines de ces pages contiennent un formulaire qui à la validation ouvre normalement une nouvelle page dans le même pop-up et éxécutant du code PHP.

Ce que j'aimerai, c'est qu'à la validation du formulaire, la nouvelle page soit chargée dans le DIV prévu avec les valeurs du formulaire méthode POST ou GET, peu importe...

Le but étant au final de trouver un meilleur confort d'utilisation, et surtout de ne plus avoir de pop-up cachant une information provenant de la page parente...

Voice un de mes formulaires d'origine :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
<?php
$mrtg_switch_port               = $_GET['mrtg_switch_port'];
$mrtg_switch_ip                 = $_GET['mrtg_switch_ip'];
require_once('../../data/connection/site.php');
mysql_select_db($database_site,$site) or die ("erreur de connexion base"); 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><?php echo $mrtg_switch_ip." / ".$mrtg_switch_port ?> "</title>
<link href="../../css/popup.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
<div id="pathway"><img src="../../data/icons/chart_curve.gif"  /> <strong>IP <?php echo $mrtg_switch_ip ?></strong> / <strong>Port <?php echo $mrtg_switch_port ?></strong></div>
<br />
<form id="form1" name="mrtg_add" method="post" action="mrtg_add">
 <label><b>Type de monitoring :</b><br /><br /> 
  <select name="mrtg_switch_type">
    <option value="traffic" selected="selected">Traffic</option>
    <option value="inerrors">InErrors</option>
  </select>
  </label>
  <br />
  <br />
  <label><b>Description :</b><br />
  <input name="mrtg_descr" type="text" /></label>
  <br />
  <input type="hidden" name="mrtg_switch_port" value="<?php echo $mrtg_switch_port ?>" />
  <input type="hidden" name="mrtg_switch_ip" value="<?php echo $mrtg_switch_ip ?>" />
  <br />
  <br />
  <center><input name="submit" type="submit" value="Valider" /></center>
</form>

Et la fonction qui me permet d'ouvre une page dans un DIV à partir d'un lien href :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
<script type="text/javascript">
function envoieRequete(url,id)
{
	var xhr_object = null;
	var position = id;
	var methode = met;
	   if(window.XMLHttpRequest)  xhr_object = new XMLHttpRequest();
	  else
	    if (window.ActiveXObject)  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
 
	// On ouvre la requete vers la page désirée
	xhr_object.open("GET", url, true);
 
	xhr_object.onreadystatechange = function(){
	if ( xhr_object.readyState == 4 )
	{
		// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
		document.getElementById(position).innerHTML = xhr_object.responseText;
	}
	}
	// dans le cas du get
	xhr_object.send(null);
 
 
}
 
 
</script>
Le script est dans la page index.php, et donc est présent pour toutes les autres pages du site...

Petite précision, après ça, pour un des formulaire, j'aurais besoin d'effectuer 2 actions qui se suivent : en premier, afficher la nouvelle page avec les paramètres du formulaire, en second mettre à jour une case d'un tableau dans un autre DIV de la page en cours.... Pas complexe du tout!!!

Merci d'avance pour votre aide!!!