Boite de dialogue ne fonctionne pas

mathoo -  
 thilde -
Bonjour,

voila mon code : (en cliquant sur mon image j'appelle une fonction javascript pour afficher un message)

- partie php

echo"<td><img src='images/modif.jpg' title='modifier la validation' border='0' onclick='confirmation(".$rowEnqueteDate['SUI_ID'].",".$date.")'></td>";

- partie javascript

function confirmation(id, date)
{
if(confirme("Voulez vraiment modifier la validation ?"))
{
document.location="index.php?page=modifValidation&id="+id"&date="+date;
}
else
{
document.location="index.php?page=verifRechercheDate&id="+id"&date="+date;
}
}

et voila mon problème :

lorsque je clic sur mon image rien ne se passe
j'ai du faire une erreur dans ma syntaxe mais je ne la trouve pas
vous qui avez un regard extérieur vous pouvez peut etre m'aider

merci à tous
Configuration: Windows XP
Internet Explorer 6.0

12 réponses

  1. croy Messages postés 457 Statut Membre 114
     
    function confirmation( id, date )
    {
    if( confirm( "Voulez vraiment modifier la validation ?" ) )
    document.location = "index.php?page=modifValidation&id=" + id + "&date=" + date;
    else
    document.location = "index.php?page=verifRechercheDate&id=" + id + "&date=" +date;
    }

    Essaye donc avec cette version du script.

    Pour trouver les erreurs j'ai utilisé la méthode suivante :

    1. réécrit le script en respectant les indentations entre les différents blocs et insérant des espaces pour séparer les opérateurs des arguments
    2. inséré des appels de Alert( "coucou" ); pour voir où ça coinçait.
    0
  2. mathoo
     
    merci cela fonctionne
    en comparant mon code et le tiens j'ai trouvé mon erreur :
    j'ai mis "confirme" au lieu de "confirm"
    voila encore une erreur idiote, un manque d'attention !!
    0
  3. mathoo
     
    un autre problème apparait et auquel je n'avais pas du tout pensé !!

    lorsque je passe ma date dans ma fonction javascript celle-ci se converti

    expl : je passe en parametre 01/2008 et elle se traduit par 0.00049800796812749

    comment puis-je récupérer ma valeur initiale (01/2008) ??
    0
  4. croy Messages postés 457 Statut Membre 114
     
    01/2008 est équivalent à 1 divisé par 2008 soit la valeur constaté.

    Passe cet argument comme une chaine de caractères.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mathoo
     
    oui je suis d'accord
    je dois donc mettre des ' ' qui entoure ma variable date ?

    onclick='confirmation(".$rowEnqueteDate['SUI_ID'].",'".$date."')

    mais j'ai de nouveau le premier problème : lorsque je clic sur l'image, rien ne se passe et ma boite de dialogue ne s'affiche plus

    avez vous une solution ??
    0
  7. croy Messages postés 457 Statut Membre 114
     
    onclick='confirmation(".$rowEnqueteDate['SUI_ID'].",'".$date."') n'est pas correct car les guillemets simples et doubles ne se correspondent pas.

    onclick = "confirmation( $rowEnqueteDate[ 'SUI_ID' ], $date )" devrait être mieux mais je ne puis être formel sans savoir ce que sont les variables $rowEnqueteDate et $date.
    0
  8. thilde
     
    bonjour à tous,

    je relance mon probleme
    sur le clic d'un bouton j'appelle une fonction javascript en passant en paramêtre deux variables dont une date de type 01/2008
    le souci c'est que javascript comprend 1 divisé par 2008 et non une date
    quelle est la syntaxe correcte pour passer ma variable comme une chaine de caractères ?

    echo"<td><img src='images/modif.jpg' title='modifier la validation' border='0' onclick = 'confirmation(".$rowEnqueteDate['SUI_ID'].", $date )'></td>";

    echo"<td><img src='images/modif.jpg' title='modifier la validation' border='0' onclick = 'confirmation(".$rowEnqueteDate['SUI_ID'].", ".$date.")'></td>";

    ces deux formulations me renvoie 0.00049800796812749 au lieu de 01/2008

    merci de votre aide
    0
    1. croy Messages postés 457 Statut Membre 114
       
      Je te répête ma question qui n'a pour but que de t'aider : qu'est-ce-que la variable $date ? d'où viennt-elle ?

      Tu peux déterminer son type par la fonction PHP gettype et je parierais qu'elle est de type float. Ce type découlant de la manière dont tu initialises $date.

      Examine et comprends l'exemple ci-dessous :
      <?php
      $date = "01/2008"; // affiche 01/2008>string
      echo $date . ">" . gettype( $date );
      $date = (float)$date; // affiche 1>double
      echo "<br>" . $date . ">" . gettype( $date );
      $date = 1.0 / 2008.; // affiche 0.00049800796812749>double
      echo "<br>" . $date . ">" . gettype( $date );
      ?>

      Après celà tu trouveras la solution adaptée à ton script.
      0
  9. thilde
     
    je récupère dans $date une date saisie dans un formulaire input type="text" de la forme MM/AAAA

    cependant, cette même date circule dans plusieurs page
    donc au début de mon php je test :

    if(isset($_GET['date']))
    {
    $date = $_GET['date'];
    }
    else
    {
    $date = $_POST['date'];
    }

    et c'est donc ce $date que je passe dans mon script php
    0
  10. croy Messages postés 457 Statut Membre 114
     
    As-tu essayé ce que je te suggérais ?
    0
  11. thilde
     
    laquelle de suggestion ?
    car j'ai testé toute les propositions mais j'arrive toujours au même point ca divise 1 par 2008 !!

    j'ai bien testé le type de ma variable c'est un string mais une fois passé dans javascript...rien ne va plus ^^

    je désespère
    0
  12. croy Messages postés 457 Statut Membre 114
     
    Surtut ne pas se désespérer : la solution est à ta portée mais je pense qu'il faut que tu agisse logiquement et par étape pour trouver ton erreur.

    <head>
    <script language="JavaScript">
    function confirmation(id, date)
    {
    alert("coucou");
    if( confirm("Voulez vraiment modifier la validation ?") )
    {
    document.location="temp.php?page=modifValidation&id="+id+"&date="+date;
    }
    else
    {
    document.location="temp.php?page=verifRechercheDate&id="+id+"&date="+date;
    }
    }
    </script>
    </head>
    <body>
    <?php
    var_dump( $_GET );
    $date="1/2008";
    echo "<img src='images/modif.jpg' border='0' onClick='javascript:confirmation( \"idBidon\", \"$date\" )'>";
    ?>
    </body>

    Le php ci-dessus marche bien : var_dump( $_GET ) affiche : { ["page"]=> string(15) "modifValidation" ["id"]=> string(7) "idBidon" ["date"]=> string(6) "1/2008" } qui montre bien que le script appelé via javascript reçoit bien le param date en string.

    Par contre, si tu initialise $date par : $date = 1/2008, le paramètre est numérique.

    Pour trouver ton pb, deux possibilités :

    1. retrousser tes manches (i.e. tes cellules grises) et suivre le type de ta variable $date par des appels de gettype en plusiieurs endroits de manière à trouver où ta variable passe en type numérique.

    2. m'envoyer le source de ton script
    0
  13. thilde
     
    bonjour,

    merci croy pour toutes tes explications, j'ai enfin réussi a faire passer ma variable correctement
    ce n'était qu'une histoire de guillemets que je n'arrivai pas à positionner,
    après de nombreuses tentatives voila ma solution :

    echo '<td><img src="images/modif.jpg" title="modifier la validation" border="0" onclick="confirmation('.$rowEnqueteDate['SUI_ID'].',\''.$date.'\')"></td>';

    merci pour ton aide, bonne journée ;)
    0