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
A voir également:

12 réponses

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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
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
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
croy Messages postés 457 Statut Membre 114
 
As-tu essayé ce que je te suggérais ?
0
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
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
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