creation bouton dynamique/lien dynamique

creation bouton dynamique/lien dynamique - PHP - Programmation

Marsh Posté le 24-02-2004 à 11:43:52    

voila, j'ai un script qui me génère automatiquement un tableau selon une base de donnée 'mabase';
chaque ligne correspond à un utilisateur, et à la fin de chacune de ces lignes, je veux qu'un bouton soit créer dynamiquement afin de pouvoir activer/desactiver cet utilisateur;
lors du clic sur ce bouton, une requete est effectuée sur 'mabase' pour mettre à jour ces informations.
J'ai essayé de faire cela en java^script ^mais je ne m'en sorts pas, quelqu'un n'a t'il jamais fait cela???
Parce que j'ai cherché sur le forum, mais je n'ai rien trouvé qui coreesponde à ce que je veux...HELP

Reply

Marsh Posté le 24-02-2004 à 11:43:52   

Reply

Marsh Posté le 24-02-2004 à 13:51:04    

un lien suffit : tonscript.php?activer=1&IDutilisateur=12442
 
c'est simple ?

Reply

Marsh Posté le 24-02-2004 à 14:11:19    

ba le problème c'est que c'est du dynamique;
ce que tu me montre ci dessus fonctionne quand c'est du statique;
ici, si on considère un bouton dynamique(en java)--> comment faire, tu as un exemple concret???
 
 

Reply

Marsh Posté le 24-02-2004 à 14:18:10    

misterpinguin a écrit :

un lien suffit : tonscript.php?activer=1&IDutilisateur=12442
 
c'est simple ?


voici le script  :
comme tu me le dis ;
fichier admin.php3

Code :
  1. if($_GET['activer']) {
  2.       $id=$_GET['id'];
  3.       $query="select actif from membre where id='$id'";
  4.       require("requete.inc" );
  5.       if($x=='oui')$x='non'; //compte désactivé
  6.       else $x='oui'; //compte activé
  7.       echo $x;
  8.       $query="update membre set actif='$x' where id='$id'";
  9.       require("requete-rien.inc" );
  10.       $_GET['activer']='0';
  11.                    }
  12.                  
  13.       $URL = "admin.php3";
  14. $query="select pays,pseudo,id_membre,actif from membre order by pays,pseudo";
  15. require("requete.rows.inc" );
  16. $tableau_desactiv="";
  17. if ( $nrows > 0 )
  18. {
  19.    echo "<center><TABLE BORDER=\"5\">\n";
  20.    echo "<TR>\n";
  21.    while (list ($titre) = each( $results ) )
  22.     {
  23.       echo "<TH><font color=\"red\">$titre</TH></font>\n";
  24.     }
  25.    echo "</TR>\n";
  26.    for ( $i = 0; $i < $nrows; $i++ )
  27.     {
  28.       reset($results);
  29.       echo "<TR>\n";
  30.       while ( $column = each($results) )
  31.        {
  32.          $data = $column['value'];
  33.          echo "<TD><font color=#FFF601>".$data[$i]."</TD></font>\n";
  34.        }
  35.       $x=$data[$i];
  36.       /* Tableau nécessaire pour la désactivation */
  37.       $tableau_desactiv= $tableau_desactiv.($data[$i]);
  38.       echo "<TD>";
  39.       require ("deconnect-bout.inc" );
  40.       echo "</TD>";
  41.       print "</TR>\n";
  42.       echo $data[$i];
  43.      }
  44.    echo "</center>";
  45. }


 
 
 
 
fichier deconnect-bout.inc

Code :
  1. <a href="admin.php3?activer=1&id='<?$data[$i]?>'">
  2. <onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('destination','','desactiver2.gif',1)"><img src="desactiver1.gif" name="destination" width="88" height="20" border="0"></a>


 
En fait, le prob c'est que le code est executé sur le serveur, et le bouton java est fait après-->dans la barre d'adresse,on obtiens  
 
admin.php3?active=1&id='
 
 
 

Reply

Marsh Posté le 24-02-2004 à 14:28:23    

Enfin, bon, c'est vrai que là dans l'immediat, ça ne vas pas aller du fait que je n'ai pas posté les valeurs avec un formulaire.
-->il y donc 2 problèmes :
1)comment poster des variables sans utiliser l'html??
2)comment attribuer à chaque bouton deconnecter, sa spécificité?
merci

Reply

Marsh Posté le 24-02-2004 à 14:33:19    

normal, une commande require n'appelle le fichier qu'une fois, meme si tu boucles à l'infini.
 
essaies avec include

Reply

Marsh Posté le 24-02-2004 à 14:37:38    

misterpinguin a écrit :

normal, une commande require n'appelle le fichier qu'une fois, meme si tu boucles à l'infini.
 
essaies avec include


Tu confonds require et require_once
 
require inclus le fichier autant de fois qu'il est appelé, require_once une seule fois
 
la différence entre require et include est en cas d'erreur d'inclusion : avec require ça tue le script, avec include ça met seulement un warning

Reply

Marsh Posté le 24-02-2004 à 14:42:08    

ratibus a écrit :


Tu confonds require et require_once
 
require inclus le fichier autant de fois qu'il est appelé, require_once une seule fois
 
la différence entre require et include est en cas d'erreur d'inclusion : avec require ça tue le script, avec include ça met seulement un warning


très juste, autant pour moi  :jap:

Reply

Marsh Posté le 24-02-2004 à 14:42:44    

sbbtn a écrit :


voici le script  :
comme tu me le dis ;
fichier admin.php3

Code :
  1. if($_GET['activer']) {
  2.       $id=$_GET['id'];
  3.       $query="select actif from membre where id='$id'";
  4.       require("requete.inc" );
  5.       if($x=='oui')$x='non'; //compte désactivé
  6.       else $x='oui'; //compte activé
  7.       echo $x;
  8.       $query="update membre set actif='$x' where id='$id'";
  9.       require("requete-rien.inc" );
  10.       $_GET['activer']='0';
  11.                    }
  12.                  
  13.       $URL = "admin.php3";
  14. $query="select pays,pseudo,id_membre,actif from membre order by pays,pseudo";
  15. require("requete.rows.inc" );
  16. $tableau_desactiv="";
  17. if ( $nrows > 0 )
  18. {
  19.    echo "<center><TABLE BORDER=\"5\">\n";
  20.    echo "<TR>\n";
  21.    while (list ($titre) = each( $results ) )
  22.     {
  23.       echo "<TH><font color=\"red\">$titre</TH></font>\n";
  24.     }
  25.    echo "</TR>\n";
  26.    for ( $i = 0; $i < $nrows; $i++ )
  27.     {
  28.       reset($results);
  29.       echo "<TR>\n";
  30.       while ( $column = each($results) )
  31.        {
  32.          $data = $column['value'];
  33.          echo "<TD><font color=#FFF601>".$data[$i]."</TD></font>\n";
  34.        }
  35.       $x=$data[$i];
  36.       /* Tableau nécessaire pour la désactivation */
  37.       $tableau_desactiv= $tableau_desactiv.($data[$i]);
  38.       echo "<TD>";
  39.       require ("deconnect-bout.inc" );
  40.       echo "</TD>";
  41.       print "</TR>\n";
  42.       echo $data[$i];
  43.      }
  44.    echo "</center>";
  45. }


 
 
 
 
fichier deconnect-bout.inc

Code :
  1. <a href="admin.php3?activer=1&id='<?$data[$i]?>'">
  2. <onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('destination','','desactiver2.gif',1)"><img src="desactiver1.gif" name="destination" width="88" height="20" border="0"></a>


 
En fait, le prob c'est que le code est executé sur le serveur, et le bouton java est fait après-->dans la barre d'adresse,on obtiens  
 
admin.php3?active=1&id='
 
 
 
 


 
Ton problème, je pense vient du fichier deconnect-bout.inc
 
Essaie de mettre ça dans ce fichier :  

Code :
  1. <?php
  2. echo '<a href="admin.php3?activer=1&id='.$data[$i].'">
  3. <onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'destination\',\'\',\'desactiver2.gif\',1)"><img src="desactiver1.gif" name="destination" width="88" height="20" border="0"></a>';
  4. ?>


Message édité par ratibus le 24-02-2004 à 14:43:11
Reply

Marsh Posté le 24-02-2004 à 14:53:05    

ça ne fonctionne pas non plus;
comme je le disais, il faudrait que le $data[$i] soit executé sur le serveur... mais comment faire???

Reply

Marsh Posté le 24-02-2004 à 14:53:05   

Reply

Marsh Posté le 24-02-2004 à 14:58:10    

sbbtn a écrit :

ça ne fonctionne pas non plus;
comme je le disais, il faudrait que le $data[$i] soit executé sur le serveur... mais comment faire???


ton include est éxécuté par le serveur...
 
j'avais lu trop vite par contre :
 <a href="admin.php3?activer=1&id='<?$data[$i]?>'">  
 
il faut un print ou un echo devant ton $data[$i]...

Reply

Marsh Posté le 24-02-2004 à 15:00:48    

misterpinguin a écrit :


ton include est éxécuté par le serveur...
 
j'avais lu trop vite par contre :
 <a href="admin.php3?activer=1&id='<?$data[$i]?>'">  
 
il faut un print ou un echo devant ton $data[$i]...


d'où le code que j'ai posté  ;)
 
On pourrait avoir le code de ce fichier : requete.rows.inc ?


Message édité par ratibus le 24-02-2004 à 15:02:12
Reply

Marsh Posté le 24-02-2004 à 15:15:10    

ratibus a écrit :


d'où le code que j'ai posté  ;)
 
On pourrait avoir le code de ce fichier : requete.rows.inc ?


 
ça ne va pas non plus avec l'echo;
 
requete.rows.inc

Code :
  1. <?
  2. require("session.inc" );
  3. /* requete */
  4. reset($results);
  5. $requete=ociparse($db_link,$query);
  6. ociexecute($requete);
  7. $nrows=ociFetchStatement($requete,$results);
  8. ?>

Reply

Marsh Posté le 24-02-2004 à 15:17:54    

en fait c'est une BDD oracle;  
dans cet exemple on récupère le nombre de colonne par rapport à une requete onnée (c'est un peu comme un mysql_num_rows
 
requete.inc -->renvoie le resultat de la requete $query dans la variable $x;
et requete-rien.inc -->execute une requete sans rien renvoyé

Reply

Marsh Posté le 24-02-2004 à 15:55:47    

ça me parait bizarre...
 
essaies un print_r($data); voir si c'est un pb de syntaxe ou si ton tableau est vide

Reply

Marsh Posté le 24-02-2004 à 16:28:07    

je l'ai déja fait, mon tableau est bel et bien rempli...

Reply

Marsh Posté le 24-02-2004 à 19:15:45    

sbbtn a écrit :

je l'ai déja fait, mon tableau est bel et bien rempli...


alors c'est ta boucle qui ne tourne pas rond...

Code :
  1. for ( $i = 0; $i < $nrows; $i++ )
  2.    {
  3.      reset($results);
  4.      echo "<TR>\n";
  5.      while ( $column = each($results) )
  6.       {
  7.         $data = $column['value'];
  8.         echo "<TD><font color=#FFF601>".$data[$i]."</TD></font>\n";
  9.       }
  10.      $x=$data[$i];
  11.      /* Tableau nécessaire pour la désactivation */
  12.      $tableau_desactiv= $tableau_desactiv.($data[$i]);
  13.      echo "<TD>";
  14.      require ("deconnect-bout.inc" );
  15.      echo "</TD>";
  16.      print "</TR>\n";
  17.      echo $data[$i];
  18.     }


si $result est ton tableau de resultats, pourquoi ne l'utilises tu pas directement ? $result[$i] ?

Reply

Marsh Posté le 24-02-2004 à 19:18:01    

en d'autres termes d'apres ce que je comprends, tu affiches X fois la meme valeur de $column (puisque tu fais un tour par enregistrement mais en allant chercher à chaque fois la meme valeur de $i)

Reply

Marsh Posté le 25-02-2004 à 09:48:00    

misterpinguin a écrit :

en d'autres termes d'apres ce que je comprends, tu affiches X fois la meme valeur de $column (puisque tu fais un tour par enregistrement mais en allant chercher à chaque fois la meme valeur de $i)


 
non, le $i est bon : je visualise les valeurs de $data[$i] avec le "echo" et tout fonctionne!

Reply

Marsh Posté le 25-02-2004 à 14:38:40    

Sinon, personne n'a un exemple utilisant php et java???
--> php :servlet
--> java :applet

Reply

Marsh Posté le 27-02-2004 à 09:21:11    

UP, no idea,?

Reply

Marsh Posté le 01-03-2004 à 11:20:35    

:??:  :??:  :??:  

Reply

Marsh Posté le 08-03-2004 à 17:19:40    

coucou

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed