Traitement formulaire avec popup

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Traitement formulaire avec popup

par bunk » 14 juin 2006, 16:25

Personne n'aurait d'idée ou ce code est trop mal fait ?

Traitement formulaire avec popup

par bunk » 14 juin 2006, 15:03

Bonjour,

Je suis en train de faire un formulaire dans un popup que j'appel par :

Code : Tout sélectionner

function openup2(message) { if (window.showModalDialog) //si c est ie5 ou compatible IE5 { top.window.showModalDialog("mod_role.php","","help:0;resizable:0;dialogLeft:1600;dialogTop:1200;dialogWidth:400px;dialogHeight:300px"); //top.window.focus(); } else { top.window.open("mod_role.php","","width=400px,height=300px,resizable=0,scrollbars=1"); //top.window.focus(); } }
Le popup s'ouvre bien sous Ie et Firefox mais ne réagi pas de la même facon. Voila le contenu du popup :

include "../conf/conf.php";

if (isset($_POST["sujet"])){$sujet = $_POST["sujet"];}else{$sujet = '';}
if (isset($_POST["id_sujet"])){$id_sujet = $_POST["id_sujet"];}else{$id_sujet = '';}

$var_evt = $_GET['evt'];
$var_id = $_GET['id'];

if ($var_evt == "4") {
		
		if ($sujet != "" && $id_sujet != "") {
		
			$sql = "UPDATE responsable_role
			SET role_responsable='$sujet' WHERE id_role_responsable='$id_sujet'";
			$req = mysql_query($sql) or die('Impossible de modifier la configuration');
		
		} else {
					
			if($sujet != "" && $id_sujet == "") {
				
				$sql = "INSERT INTO responsable_role (id_role_responsable, role_responsable) VALUES('','$sujet')";
				$req = mysql_query($sql) or die('Erreur');
				
			} else {
			}
		}
			
} elseif ($var_evt == "5" && $var_id != "") {

		$sql = "DELETE FROM responsable_role WHERE id_role_responsable='$var_id'";
		$req = mysql_query($sql);

} else {
}

// URL
$url = $_SERVER["PHP_SELF"];

?>
<html>
<head>
<script type="text/javascript">

function contact_trt(val1) {
var val1=val1.split('/')
document.form.id_sujet.value=val1[0]
document.form.sujet.value=val1[1]
}

function contact_trt2() {
document.form.sujet.value=''
document.form.id_sujet.value=''
}

function test(sup_su) {
location.href="mod_role.php?evt=5&id=" + sup_su;
}

function hideElement(idElement)
{
	if(document.getElementById(idElement).style.display == 'none')
	{
	document.getElementById(idElement).style.display = 'block';
	}
	else
	{	
	document.getElementById(idElement).style.display = 'none';
	}	
}

</script>

</head>

<body>
<div>
<h2>Modifier la liste des rôles</h2>
<form name="form" method="post" action="<?php echo $url; ?>?evt=4" id="formrole">
<select name="select" size="8" onClick="javascript:contact_trt(this.options[this.selectedIndex].value)">

<?php

$sql = "SELECT * FROM responsable_role ORDER BY role_responsable ASC";
$req = mysql_query($sql) or die('Impossible de visualiser les rôles'); 

while($data = mysql_fetch_array($req)) {

	echo '<option value="' . $data['id_role_responsable'] .'/' . $data["role_responsable"] . '">' . $data["role_responsable"] . '</option>';

}
?>
  </select>
<br />
<input name="sujet" type="text" maxlength="30" size="32"/>
<input name="id_sujet" type="hidden" />
 
<input name="envoyer" type="submit" value="Envoyer" />
<input name="vider" type="submit" value="Vider" onClick="javascript:contact_trt2()" />
</form>
<input name="effacer" type="submit" value="Effacer" onClick="javascript:test(document.form.id_sujet.value)" />
</div>
</body>
Quand je valide une action (par bouton) sous Firefox ca fonctionne bien, si je le test sous IE il execute la/les requete(s) dans la fenêtre principale.

Pouvez vous m'aider à faire en sorte que ce popup réagisse de la même facon sous IE que sous Firefox ?

D'avance merci