Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1621 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Firefox et une fonction javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Firefox et une fonction javascript

n°1952859
Magg27
Posté le 23-12-2009 à 17:29:09  profilanswer
 

Bonjour,

 


J'ai le fichier test.php suivant :

 
Code :
  1. <?php
  2. include("_acces_bd.php" );
  3. ?>
  4. <html>
  5. <head>
  6.  <title>Title</title>
  7.  <script type="text/javascript">
  8.   //supprimer un client, il y aura un confirmation
  9.   function sclient(lim)
  10.   {
  11.    if (confirm("Are you sure you want to delete this Client ?" )) {
  12.     form_radio_client.action = "suppr_client.php?limite=" + lim;
  13.     form_radio_client.submit();
  14.     return true;
  15.    }
  16.   }
  17.  </script>
  18. </head>
  19. <body>
  20.  <table border="1">
  21.   <tr>
  22.    <td>&nbsp;</td>
  23.    <td>Numero</td>
  24.    <td>Nom</td>
  25.   </tr>
  26.   <form method="post" name="form_radio_client">
  27.    <?php
  28.    $sql="SELECT * FROM test;";
  29.    $rrow=mysql_query($sql);
  30.    while ($row=mysql_fetch_array($rrow))
  31.    {
  32.     $num=$row['Numero'];
  33.     $nom=$row['Nom'];
  34.     ?>
  35.     <tr>
  36.      <td><input type="radio" name="radio_client" value="<?php echo $num; ?>"></td>
  37.      <td><?php echo $num; ?></td>
  38.      <td><?php echo $nom; ?></td>
  39.     </tr>
  40.     <?php
  41.    }
  42.    mysql_close();
  43.    ?>
  44.   </form>
  45.  </table>
  46.  <a href="javascript:onClick=sclient()">Delete</a>
  47. </body>
  48. </html>


Le but de ce fichier est de cocher une ligne du tableau de clients (à l'aide de bouton radio) puis de supprimer cette ligne en cliquant sur le bouton "Delete" qui fait appel à la fonction javascript "sclient". Cette fonction javascript va permettre de rediriger l'utilisateur vers la page suppr_client.php qui va récupérer l'identifiant de la ligne cochée pour effectuer le traitement de suppression.

 

Ce programme marche très bien avec tous les navigateurs.

 

Mon problème est quand je veux l'appeller dans un autre fichier à l'aide d'un include.
Du coup ce programme ne marche plus que sur IE. Sur Firefox la fonction javascript est appellé (j'ai le prompt confirm qui s'ouvre) mais je ne suis pas redirigé vers suppr_client.php.

 

Désolé pour la longueur du code mais je peux pas faire plus court.

 

Merci pour votre aide !

Message cité 1 fois
Message édité par Magg27 le 23-12-2009 à 17:30:39
mood
Publicité
Posté le 23-12-2009 à 17:29:09  profilanswer
 

n°1952861
Magg27
Posté le 23-12-2009 à 17:30:10  profilanswer
 

Voici le fichier customer.php qui appelle le fichier test.php :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body bgcolor="#EEEEF7" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
  7. <?php
  8. if($cat=="software" )
  9. {
  10. include("software.php" );
  11. }
  12. if($cat=="hardware" )
  13. {
  14. include("hardware.php" );
  15. }
  16. if($cat=="connexion" )
  17. {
  18. include("connexion.php" );
  19. }
  20. if($cat=="test" )
  21. {
  22. include("test.php" ); //Appel ici
  23. }
  24. ?>
  25. </div>
  26. </div>
  27. </body>
  28. </html>


Message édité par Magg27 le 23-12-2009 à 17:39:51
n°1952882
Magg27
Posté le 23-12-2009 à 18:11:58  profilanswer
 

Bon, je vais vous aider un peu ! J'ai trouvé le coupable :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">


Le voilà ! Quand je remplace ces deux ligne par <html> ça marche mais du coup je ne peux pas les utiliser.
Vous avez une idée ?


Message édité par Magg27 le 23-12-2009 à 18:13:16
n°1952897
David Bori​ng
Posté le 23-12-2009 à 19:09:23  profilanswer
 

Tu inclus une page dans une autre ?
Tu dois avoir dans ton include uniquement le html compris entre <body> de ton fichier test.php
Et tu mets le js dans un fichier séparé que tu lances depuis customer.php

n°1952973
Magg27
Posté le 24-12-2009 à 09:41:33  profilanswer
 

Merci pour ta réponse.
Oui j'ai inclu test.php dans customer.php.
J'ai fait tout ce que tu m'a dit mais ça marche encore moins bien : le include ne marche plus du tout lorsque je met ce js :

 
Code :
  1. function sclient(lim)
  2.   {
  3.    if (confirm("Are you sure you want to delete this Client ?" )) {
  4.     form_radio_client.action = "suppr_client.php?limite=" + lim;
  5.     form_radio_client.submit();
  6.     return true;
  7.    }
  8.   }
 

dans un fichier (customer.php devient une page toute blanche).

 

J'ai aussi gardé le code situé entre <body> et </body> du fichier test.php ... Ca marche pas ...
La seule manière de tout faire marcher c'est de mettre la balise "<html>" ou lieu du gros patakès "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">"

 

Mais cette solution ne me plais pas car il y a plein de code qui ne sont pas interprété de la même façon après...


Message édité par Magg27 le 24-12-2009 à 09:43:03
n°1952982
Magg27
Posté le 24-12-2009 à 10:27:25  profilanswer
 

En me baladant sur des forum où des sujets traitent des problèmes d'incompatibilité Doctype/Javascript sur Firefox, j'ai déduit que mon problème venait sûrement de la conception de mon code javascript :

 
Code :
  1. <script type="text/javascript">
  2.   //supprimer un client, il y aura un confirmation
  3.   function sclient(lim)
  4.   {
  5.    if (confirm("Are you sure you want to delete this Client ?" )) {
  6.     form_radio_client.action = "suppr_client.php?limite=" + lim;
  7.     form_radio_client.submit();
  8.     return true;
  9.    }
  10.   }
  11.  </script>
 

Avec un Doctype, mon javascript n'exécute que le confirm mais ne fait pas la redirection vers suppr_client.php ...
Pouvez-vous me dire si mon script est bien construit ou bien s'il y a une erreur ?

 

Après un contrôle par l'outil jslint.com, j'ai cette erreur :

 

Error:

 

Implied global: confirm 3, form_radio_client 5,7

 

Ca vous parle ?


Message édité par Magg27 le 24-12-2009 à 10:41:20
n°1952997
Magg27
Posté le 24-12-2009 à 11:29:57  profilanswer
 

Bon, j'avance encore un peu : j'ai trouvé l'intitulé exact de l'erreur grâce à l'outil Web Developer de Firefox que je ne connaissais pas. Je le conseille !
Lorsque j'appelle mon script javascript, j'ai l'erreur "form_radio_client is not defined". Le problème est que je ne pije pas où est l'erreur : j'ai bien nommé mon form "form_radio_client" dans mon fichier test.php ...


Message édité par Magg27 le 24-12-2009 à 11:31:54
n°1953116
gatsu35
Blablaté par Harko
Posté le 24-12-2009 à 19:26:05  profilanswer
 

<a href="javascript:onClick=sclient()">Delete</a> <== nan mais lol quoi :(
 
<a href="#" onclick="sclient(); return false">Delete</a>
 
et aussi tu mets un id sur ton form et tu y accèdes par document.getElementById('idduform')  

Code :


---------------
Blablaté par Harko
n°1953365
Magg27
Posté le 28-12-2009 à 10:00:21  profilanswer
 

Merci, j'ai essayé tout ça, il n'y a plus d'erreurs mais le code javascript suivant n'est quand même pas éxecuté :

 
Code :
  1. document.getElementById('form_radio_client').action = "suppr_client.php?limite=" + lim;
  2. document.getElementById('form_radio_client').submit;
 

Je ne suis pas redirigé ver suppr_client.php. Sinon la fonction renvoie true ...
A noter que j'ai mis un id dans le form :

 

Code :
  1. <form method="post" id="form_radio_client">
 

Avez-vous une idée du bug ?

 

Autrement voilà ce que je souhaite faire : sous forme de tableau, j'ai plusieurs lignes correspondants à des clients et chaque ligne dispose d'un bouton radio avec une value propre à la ligne (pour pouvoir identifier chaque bouton radio à un client).
En partant de ce principe, je voudrais que le l'utilisateur puisse sélectionner un client et pouvoir cliquer sur un bouton "Supprimer" qui va appeller une fonction (javascript ou php, ou les deux) pour effectuer le traitement dans la BDD.
Rien de plus simple ... Mais comment faire ?

 

Merci pour vos idées  ;)


Message édité par Magg27 le 28-12-2009 à 10:01:22
n°1953390
Magg27
Posté le 28-12-2009 à 11:54:48  profilanswer
 

J'ai trouvé ce script :

Code :
  1. <script type="text/javascript">
  2. function sclient()
  3. {
  4.   //supprimer un client, il y aura un confirmation  
  5.   if (confirm("Are you sure you want to delete this Client ?" ))
  6.   {
  7.   var LesRadios = document.getElementsByName("radio_client" );
  8.   for (i=0; i<LesRadios.length; i++)
  9.   {
  10.   if (LesRadios[i].checked)
  11.   {
  12.   la_valeur = LesRadios[i].value;
  13.   document.getElementById("form_radio_client" ).action="suppr_client.php?limite=" + la_valeur;
  14.   }
  15.   }
  16.   }
  17. }
  18.  </script>


 
Mais pareil :
 

Code :
  1. document.getElementById("form_radio_client" ).action="suppr_client.php?limite=" + la_valeur;


 
cette ligne ne marche pas !
 
Quand je remplace document.getElementById("form_radio_client" ).action par windows.location.href, j'ai windows is not defined. On dirais que la structure "suppr_client.php?limite=" + la_valeur ne lui plait pas trop.


Message édité par Magg27 le 28-12-2009 à 12:08:42
mood
Publicité
Posté le 28-12-2009 à 11:54:48  profilanswer
 

n°1953418
Magg27
Posté le 28-12-2009 à 15:30:10  profilanswer
 

Bref, voilà mon script qui marche impeccable pour ce que je veux faire :
 

Code :
  1. <script type="text/javascript">
  2. function sclient()
  3. {
  4.   //supprimer un client, il y aura un confirmation  
  5.   if (confirm("Are you sure you want to delete this Client ?" ))
  6.   {
  7.   var LesRadios = document.getElementsByName("radio_client" );
  8.   for (i=0; i<LesRadios.length; i++)
  9.   {
  10.   if (LesRadios[i].checked)
  11.   {
  12.   la_valeur = LesRadios[i].value;
  13.   document.location.href="updatelastaccess.php?num=" + la_valeur;
  14.   }
  15.   }
  16.   return true;
  17.   }
  18. }
  19.  </script>


 
Maintenant j'aimerais pouvoir rediriger vers la page précédente en la rafraichissant. J'ai essayé avec :

Code :
  1. <script type="text/javascript">
  2. history.go(-1);
  3. </script>


 
Mais ça rafraichi pas ... Y a t-il un moyen ?

n°1953432
Magg27
Posté le 28-12-2009 à 16:00:12  profilanswer
 

Je commence à avoir l'impression que mon post ressemble + à un carnet de bord qu'autre chose, enfin, j'ai encore trouvé tout seul. Pour ceux qui sont intéréssé il faut utiliser ça pour rediriger vers la page précédente en la rafraichissant :
 

Code :
  1. <script type="text/javascript">
  2. document.location.href=document.referrer;
  3. </script>

n°1953439
Magg27
Posté le 28-12-2009 à 16:40:30  profilanswer
 

Décidément, je vais d'obstacle en obstacle ... Cette fois-ci il y en a un gros et j'ai vraiment besoin de vos lumières car je ne vois vraiment pas comment m'y prendre :
 
Maintenant que j'ai mon tableau de client qui s'affiche avec tous les petits boutons radios, j'ai pour projet que l'on puisse sélectionner facilement une ligne de tableau (avec les boutons radios) puis cliquer sur un bouton modifier qui appelle une fonction qui va par magie me "dévérouiller" la ligne pour pouvoir modifier les infos. Il y aura évidemment un bouton valider et annuler ...
 
Vous avez une idée ?
 
C'est pas encore que je réussi à résoudre ce problème moi-même ! Je préfère vous avertir  :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Firefox et une fonction javascript

 

Sujets relatifs
[Résolu] Lien non cliquable sous FirefoxProblème de redimensionnement image en javascript
Creer des champs en fonction d'une autre tableAppliquer une feuille de style en fonction du site visité (Safari)
[Javascript] Greybox : chargement foireuxscript commentaire et appels javascript
Problème fonction include()Programmer une fonction recherche avec une ArrayList
[Resolu]Firefox Fonction Javascript replace fonctionne pas[Javascript] Rendre une fonction compatible avec Firefox
Plus de sujets relatifs à : Firefox et une fonction javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR