Les liens avec le PHP

Fermé
mathieu - 7 juin 2005 à 16:21
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 - 8 juin 2005 à 11:48
bonjour,

jai un problème avec les liens que je voudrais insérer en PHP...
voici mon lien tel kil fonctionne en html.
<p><a href="popup.htm" target="wclose"
onclick="window.open('popup.htm','wclose',
'width=380,height=350,toolbar=no,status=no,left=20,top=30')">
Fenêtre popup</A></p>

jaimerais le mettre ds du php de cette manière
<?
echo '<p><a href="popup.htm" target="wclose"
onclick="window.open('popup.htm','wclose',
'width=380,height=350,toolbar=no,status=no,left=20,top=30')">
Fenêtre popup</A></p>';
?>

malheureusement, avec ce script, il ouvre le lien sans prendre en compte les paramètres de la fenêtre popup spécifiés ds window.open. cela est dû au fait kil faut que je change les " et les '. jai essayé pas mal de combinaisons sans trouver la bonne. y aurait il une âme charitable pour me donner le bon code qui fonctionne
<?
echo ' ?????';
?>


merci!!!

7 réponses

Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
7 juin 2005 à 16:34
Salut,

echo 'Tiens';

echo '<p><a href="popup.htm" target="wclose"
onclick="window.open(\'popup.htm\',\'wclose\',
\'width=380,height=350,toolbar=no,status=no,left=20,top=30\')">
Fenêtre popup</A></p>';

@+
0
c super gentil de ta part!!! ça marche à présent!
;)
0
en fait, jai essayé de l'insérer ds mon script mais ça ne marchait pas. par contre, jai mis le code dans une page seule et ça fonctionnait tres bien!

je dois mettre le lien ds un script javascript. ça doit être qui doit poser problème...
voici le script sans les paramètres tels que tu me les as donnés:
<? ...
echo '<SCRIPT type="text/javascript">
aux1 = insFld(foldersTree, gFld("<A href=page.php >cliquez ici</a>", "demoFramesetRightFrame.html"))
aux1.iconSrc = ICONPATH + "tree_layer.gif"
aux1.iconSrcClosed = ICONPATH + "tree_layer.gif" 
</SCRIPT>';

jai intégré ce que tu m'as donné. ça donne donc:
echo '<SCRIPT type="text/javascript">
aux1 = insFld(foldersTree, gFld("<a href="layersimplifie.phtml" target="wclose"
onclick="window.open(\'popup.htm\',\'wclose\',
\'width=380,height=350,toolbar=no,status=no,left=20,top=30\')">
Fenêtre popup</A>",
"demoFramesetRightFrame.html"))
aux1.iconSrc = ICONPATH + "tree_layer.gif"
aux1.iconSrcClosed = ICONPATH + "tree_layer.gif" 
</SCRIPT>';

encore les problèlmes de ' et de ", je suppose. si toi pu qqn d'autre pouvait m'éclairer...je commence à fatiguer à force de remplacer les ' par des " de rajouter des \...

merci!
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
7 juin 2005 à 22:10
Salut,

Alors on va faire plus simple, donne moi ici ton code complet javascript, sans essayer d'intégrer quoique ce soit en php, ni en modifiant les ' ou ".

@+
0
c gentil de vouloir m'aider. le code javascript complet serait bcp trop long...jessayé d'utiliser des variables. c bcp plus lisible de cette manière-là!
jai créé une variable pour l'adresse, et une variable pour l'évènement d'ouverture.
malheureusment, ça ne marche toujours pas, notamment au niveau de l'évènement: encore ces histoire de cotes, jimagine. si qqn pouvait dèceler l'anomalie, ça serait cool!
voici mon script:
<?
$adresse='http://localhost/mapfile/reference/layersimplifie.php';
$adresse='machin.phtml';
$evenement='window.open(\'popup.htm\',\'wclose\',
width=\'380\',height=\'350\')';

echo '<SCRIPT type="text/javascript">
aux1 = insFld(foldersTree, gFld("<A href='.$adresse.' onclick='.$evenement.' >Couches</a>", "demoFramesetRightFrame.html"))
aux1.iconSrc = ICONPATH + "tree_layer.gif"
aux1.iconSrcClosed = ICONPATH + "tree_layer.gif" 
</SCRIPT>';
?>


en fait, une des subtilités vient du fait que mon lien est intégré ds des guillemets:
gFld("<A href='.$adresse.' onclick='.$evenement.' >Couches</a>"

du coup, c au niveau de l'évènement que ça ne marche pas (à cause des cotes' et ")
$evenement='window.open(\'popup.htm\',\'wclose\',
width=\'380\',height=\'35
0\')';
en fait, il faudrait juste modifier la déclaration de la variable évènement. c là que ça buggue mais jai essayé pâs mal de combinaisons à base de cotes et ça ne fonctionne jamais...
:(

help? :roll:
0

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

Posez votre question
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
8 juin 2005 à 10:42
Re,

Déjà, un truc qui va pas jouer, tu défini deux fois la variable $adresse, donc php ne gardera que la dernière. Renomme les. Ensuite, il faut quand même que tu sache un truc que va bien t'aider.

Lorsque, en php, tu fais echo 'qqch'; , si tu commence par des quotes simples, le fait d'en remettre ferme ton echo. Mais il existe un moyen de mettre des quotes simple qui ne ferme pas cela : \'

Donc chaque fois que tu as dans tes scripts des qutoes simples qui ne doivent pas fermer ton echo, tu met un backslash devant. Regarde par exemple ton code modifié :
<?
$adresse='http://localhost/mapfile/reference/layersimplifie.php';
$adresse='machin.phtml';
$evenement='window.open(\'popup.htm\',\'wclose\',
width=\'380\',height=\'350\')';

echo '<SCRIPT type="text/javascript">
aux1 = insFld(foldersTree, gFld("<A href='.$adresse.' onclick='.$evenement.' >Couches</a>", "demoFramesetRightFrame.html"))
aux1.iconSrc = ICONPATH + "tree_layer.gif"
aux1.iconSrcClosed = ICONPATH + "tree_layer.gif" 
</SCRIPT>';
?>

Donc sachant cela, ce que je te conseil de faire est d'écrire ton code normalement, et une fois fini et fonctionnel, tu le passe sous php.
gFld("<A href=\"'.$adresse.'\" onclick=\"'.$evenement.'\" >Couches</a>"

Ceci devrait fonctionner, tu n'avais pas fais une balise <a href=""> avec les guillemets.

En espérant que tu ailles compris. Sinon, reviens poser des questions, et renseigne toi un peu sur le net, phpdebutant.org est très bien pour faire ses début en php.

@+
0
merci pour tes explications!
ça marche presque: une fenêtre s'ouvre mais malheureusment elle n'a pas la largeur et la hauteur que je lui avais indiquées... ptet que mon script actuel aidera?
//variables
$adresse='http://localhost/mapfile/reference/layersimplifie.php';
$evenement='window.open(\'machin.phtml\', \'width=380,height=350\')';
//l'évènement semble bien écrit, non?
//script
echo '<SCRIPT type="text/javascript">
aux1 = insFld(foldersTree, gFld("<A href=\"'.$adresse.'\" onclick=\"'.$evenement.'\" >Couches</a>", "demoFramesetRightFrame.html"))
aux1.iconSrc = ICONPATH + "tree_layer.gif"
aux1.iconSrcClosed = ICONPATH + "tree_layer.gif" 
</SCRIPT>';
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
8 juin 2005 à 11:48
Il me semble que dans ta variable $evenement, il te manque le titre de la fenêtre. Met donc :
$evenement='window.open(\'machin.phtml\',\'Titre de la page\',\'width=380,height=350\')';

@+
0