Renvoie à une page différente en fonction d'un bouton radio

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 : Renvoie à une page différente en fonction d'un bouton radio

par charabia » 20 févr. 2006, 12:14

C'est du tout cuit ;) Bon courage pour la suite !

par Guiglette » 20 févr. 2006, 11:45

Hello !

Voilà, désolé pour la semaine de retard, mais ma fois c'était les vacances ! ;)

Après avoir réfléchi un minimum, j'ai trouvé la solution... si seulement j'avais ouvert les yeux plus tôt #-o

Le problème venait de la fonction javascript pour la confirmation...

Effectivement, pour la redirection, il était inscrit :

Code : Tout sélectionner

{ document.location="suppr.php"}
Alors qu'il fallait :

Code : Tout sélectionner

{ document.form1.action="suppr.php"}
C'est tout :?

Du coup, désolé d'avoir tourné autour du pot pendant autant de temps... et surtout, MERCI BEAUCOUP pour votre aide !!! C'est vraiment nickel ! \:D/

A bientôt !

par Invité » 10 févr. 2006, 20:02

Hello,

Je ne pourrai malheureusement pas t'envoyer le code avant lundi car il est sur l'ordi que j'ai au boulot..

On reprendra tout ça comme tu dis ;)

En attendant, je te remercie et tu souhaite un bon week end !

A+

par charabia » 10 févr. 2006, 18:20

Attends on va reprendre depuis le début lol.

Ce matin tu as dis que ça marchait sauf que ça faisait submit même si on fait "annuler".

Donnes moi le code de ton bouton <input> et ta fonction javascript à ce moment.

par Guiglette » 10 févr. 2006, 17:27

Ok désolé si j'ai de la peine à comprendre....

Par contre avec seulement la fonction supprime(), ça ne marche toujours pas !

par charabia » 10 févr. 2006, 16:35

loooool tu as répondu !! :) La variable correspond à ton $cle ;)

Supprimes comme je t'ai dit la deuxième fonction de l'input. ça devrait marcher :)

par Guiglette » 10 févr. 2006, 16:06

Heu non ça ressemble plutôt à ça la page (ça peut parraître bizare, mais ça fonctionne ;))

-->
<?php require_once('Connections/tests_bd.php'); ?>
<?php
mysql_select_db($database_tests_bd, $tests_bd);
$query_Recordset1 = "SELECT eleves.numero, eleves.nom, eleves.prenom FROM eleves";
$Recordset1 = mysql_query($query_Recordset1, $tests_bd) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

	if (!empty($_POST['checkbox'])) {
		foreach ($_POST['checkbox'] as $cle) {
			$Requete = "DELETE FROM eleves WHERE numero = '$cle'";
			$resRequete = mysql_query($Requete, $tests_bd) or die(mysql_error());
		}
		header("Location:index_modif.php");
	} 
?>
<?php
require_once('Connections/tests_bd.php');
mysql_select_db($database_tests_bd, $tests_bd);
?>
<!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>Document sans titre</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><em><strong>N&deg;</strong></em></td>
      <td><em><strong>Nom</strong></em></td>
      <td colspan="2"><em><strong>Pr&eacute;nom</strong></em></td>
    </tr>
<?php
if ($_POST["checkbox"])
	foreach ($_POST["checkbox"] as $result_numero) {
	$query_Recordset1 = "SELECT eleves.numero, eleves.nom, eleves.prenom FROM eleves WHERE eleves.numero = '$result_numero'";
	$Recordset1 = mysql_query($query_Recordset1, $tests_bd) or die(mysql_error());
	$row_Recordset1 = mysql_fetch_assoc($Recordset1);
?>
      <?php do { ?>
        <tr>
          <td><?php echo $row_Recordset1['numero']; ?></td>
          <td><?php echo $row_Recordset1['nom']; ?></td>
          <td><?php echo $row_Recordset1['prenom']; ?></td>
          <td><input name="suppr[]" type="hidden" value="<?php echo $row_Recordset1['numero']; ?>" /></td>
        </tr>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
<?php 
}
?>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td colspan="2"><input type="submit" name="Submit" value="Effacer" /></td>
    </tr>
  </table>
</form>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

par charabia » 10 févr. 2006, 16:00

Ce passage de paramètres dans supprime(var) sert à identifier quelle est l'entrée que tu dois supprimer. Si tu ne spécifies pas, quand tu vas dans ton fichier suppr.php, ta requête doit avoir un WHERE id=$_GET['var'] non ?

par Guiglette » 10 févr. 2006, 15:58

Si si j'avais compris ;) mais je me demandais pourquoi passer les variables par la fonction alors qu'elles sont de toute manière récupérées dans la page d'après...

Mais bref, j'essaie ça et jte redis si j'y arrive pas ;)

par charabia » 10 févr. 2006, 15:54

looooooool tu n'as pas compris :lol:

La fonction javascript que je t'ai donné ne supprime rien du tout. Tout ce qu'elle fait c'est la boîte de dialogue avec passage en paramètre de l'ID. Donc c'est bien ta page suppr.php qui fait le travail.

Regardes la redirection et tu verras que ça pointe bien sur cette page.

Le problème que tu as eu ce matin du fait que si tu fait annuler ça submit quand même c'est tout à fait normal étant donné que tu as laissé la deuxième fonction qui elle submit.

Maintenant si tu l'enlèves du bouton et que tu ne laisses plus que supprime(), ça va agir comme ça :

Tu cliques sur supprimer. Le javascript agit : demande sûr ou pas sûr ?
--> si sûr alors il pointe vers la page supprimer
--> si pas sûr donc annuler, il ne fait rien du tout.

j'espère avoir été un peu plus clair :langue:

par Guiglette » 10 févr. 2006, 15:47

Hehe non ce n'est pas supprime() qui fait le boulot, c'est justement suppr.php ! C'est pour ça que tu ce qu'il faudrait réussir à faire avec ce submit, c'est que si on presse Ok dans la boîte de dialogue, suppr.php s'exécute et si on presse Annuler bah rien ne se passe...

On y était presque il me semble ce matin... la boîte de dialogue venait normalement et quand Ok, exécution de suppr.php... le problème c'était qu'avec Annuler aussi ça éxecutait la page :shock:

J'avais peut-être mal expliqué sur le moment excuse-moi :?

par charabia » 10 févr. 2006, 15:35

Tu ne fait pas grand chose en plus en fait lol. Tu affiches juste la valeur de l'entrée à supprimer tout simplement :)

Mais maintenant si tu me dit que supprime() fonctionne et supprime la bonne entrée (ce qui est bizarre parce que je vois pas comment il reconnait ce qu'il faut supprimer), tentes juste de mettre :

Code : Tout sélectionner

<input type="submit" name="suppr" onClick ="javascript:supprime();" value="suppr" />
Mais bon fait d'abord ce que je t'ai indiqué c'est mieux normalement ;)

par Guiglette » 10 févr. 2006, 15:33

Moui je comprends ce que tu penses.. mais dans la page suppr.php, tout est déjà récupéré et supprimé et ça fonctionne assez bien.. alors ce serait été pas mal de pouvoir faire le minimum au niveau de ce submit.. mais je vais essayer de faire cette technique quand même !

par charabia » 10 févr. 2006, 15:17

Oki donc c'est bien ça. Tes ID sont dynamiques. Donc tu dois récupérer la valeur du checkbox en question (je suppose que c'est un chiffre).

C'est cette valeur qui sera reconnu comme le isup de la fonction javascript. Donc là où tu fais l'appel dans le bouton, tu dois mettre entre les parenthèses de supprime, la valeur récupéré du checkbox.

Je ne sais pas si c'est assez clair :roll:

par Guiglette » 10 févr. 2006, 15:14

Non non c'est quand meme un peu plus compliqué que ca...

En gros c'est une bd avec une liste de personnes (donc num, nom, prénom, etc..) qui a chacun une checkbox à côté...

Ensuite tu coches les checkbox que tu veux et c'est là qu'après tu vas sur modif.php ou suppr.php... donc la valeur récupérée est dynamique..

Tout le reste fonctionne.. mais avec ces javascript là j'ai bcp de peine... déjà que je suis pas un phoenix en php ;)