OVH Cloud OVH Cloud

Passer mes variables dans une fenetre Pop u p

1 réponse
Avatar
user
Bonjour,

J'ai un tableau à programmer basé sur Php/mysql.
Ce tableau a plusieurs colonnes, dont 3 sont concernées par mon problème.
- Une colonne ID:
<?php echo '<td width="6">'.$recup['ID'].'</td>';?>
-Une colonne avec un lien "commentaire":
<td width="11"><a href="#"
onclick=window.open('commentaires.php?ID="<?$recup['ID']?>"&commentaire="<?$recup['commentaire']?>"',"Commentaire","width=400,height=260,toolbar=no,menubar=no,resizeable=no")>Commentaire</a></td>
- Une colonne avec le commentaire:
<? echo '<td width="300">'.$recup['COMMENTAIRE'].'</td>';?>

Je veux pouvoir:
- Ouvrir une pop up en cliquant sur le lien correspondant à l'ID' --> ça
marche
- Avoir tout commentaire précédemment écris affiché dans la pop up -->
ne marche pas
- Avoir la date écrite d'office avant le nouveau commentaire. --> ne
marche pas
- Valider le tout et reloader la page originale avec le nouveau
commentaire --> ne marche pas

Voici le fichier php de la pop up pour l'instant:
<html>
<head><title>Commentaires</title>
</head>
<body bgcolor=FFFFFF leftmargin="0" marginwidth="0" topmargin="0"
marginheight="0">
<br>
<center>
<form name="form" method="post" action="<?php print
$_SERVER['PHP_SELF']; ?>">
<TEXTAREA rows="10" cols="60" name="commentaire" value="<?
$_GET['COMMENTAIRE']. print "\tdate('d-m-y'):"; ?>"></TEXTAREA>
<br>
<input type="hidden" name="status" value="1">
<input type="submit" name="valider" value="Validez">
<br>
</center>
</form>
<?php

$status='';

$status = 0 + $_POST['status'];

if ($status == 1)
{

/* scrip de connexion base de donnée*/

$comments = $_POST['commentaire'];
$id = $_POST['ID'];

$sql = "update TABLE set COMMENTAIRE='$commentaire' where ID=$id" ;
//$rqt = new query($tab['dbh']);
//$rqt->query($tab['dbh'], $requete2);
//$dbh->do($requete2);
$rqt = mysql_query($sql,$dbh);
echo '<script>window.close();</script>';
}
?>

</body>
</html>

Voilà. J'espère que je suis clair et que certains d'entre vous pourront
m'aider.

Merci d'avance.

1 réponse

Avatar
Olivier Miakinen

-Une colonne avec un lien "commentaire":
<td width="11"><a href="#"
onclick=window.open('commentaires.php?ID="<?$recup['ID']?>"&commentaire="<?$recup['commentaire']?>"',"Commentaire",",height&0,toolbar=no,menubar=no,resizeable=no")>Commentaire</a></td>


Bon, déjà, « href="#" » c'est idiot car tu te coupes de ceux qui
interdisent à JavaScript d'ouvrir une nouvelle fenêtre (sans parler de
ceux qui désactivent JavaScript entièrement).

En gros, au lieu de « href="#" window.open(lien) », il vaut toujours
mieux faire « href=lien window.open(this.href) ». Syntaxe à vérifier
auprès des gourous de fr.comp.infosystemes.www.auteurs.

Autre problème : « &commentaire » à remplacer par « &amp;commentaire ».
Ça se passe bien en général parce que les navigateurs sont sympas, mais
c'est syntaxiquement incorrect.

- Ouvrir une pop up en cliquant sur le lien correspondant à l'ID' --> ça
marche


Ça marche chez toi. Cf. ma remarque précédente concernant href="#".

- Avoir tout commentaire précédemment écris affiché dans la pop up -->
ne marche pas
[...]
<TEXTAREA rows="10" cols="60" name="commentaire" value="<?
$_GET['COMMENTAIRE']. print "tdate('d-m-y'):"; ?>"></TEXTAREA>


Normal que ça ne marche pas. Tu passes 'commentaire' et tu lis
'COMMENTAIRE'. Je ne cherche pas les autres erreurs pour le moment.
Corrige déjà celles-là, et si tu peux passe un coup de validateur de
code : <http://validator.w3.org/>, on verra le reste plus tard.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.