Page 1 sur 1

variable dans href trop lourde

Posté : 28 sept. 2006, 15:24
par eteocle
Bonjour,

je rencontre un petit problème depuis quelques temps que je ne parvien pas à résoudre. Peut etre avez-vous une solution

J'ai rédigé un script php dans lequel j'ouvre une interface "richtext" (permet de styliser du texte) depuis un bouton. L'ouverture ne peut se faire (compte tenu de la disposition de mon script) que d'après un lien href de la manière suivante

echo"<table>....<td><a href onclick=\"window.open('mon richtext.php'?texte=$texte)\"><img bouton></a></td><td id='texte'>"; if ($texte){echo$texte;}echo"</td>";

Le script est concu pour que lorsque je veux modifier le texte initial affiché dans ma cellule <td>, il puisse s'afficher dans le richtext, d'où la formule mon richtext.php?texte=$texte (je récupère le $texte dans le richtext)

Tout se passe normalement si mon $texte contient une petite quantité de données mais sinon, impossible d'ouvrir le richtext (le onclick est inopérant)..c'est bien sur normal mais voilà..., il y a bien la methode post dans un formulaire qui permet de gérer plus de données mais je ne peux pas sur mon script utiliser le bouton sous forme de formulaire (pour des raisons de suite de script)..alors savez-vous s'il ya une autre facon de procéder..? je ne sais pas..peut ettre un script javascript qui permettrait de stocker dans le href plus de données ?, où bien un aménagement de mon script actuel.?..peut-on transférer par la méthode post depuis le onclick..? je n'ai pas d'idées... merci par avance de votre aide

Posté : 28 sept. 2006, 15:47
par fred9999
salut
ça serai pas plutot ça?? :lol:
echo"<table>....<td><a href onclick=\"window.open('mon richtext.php?texte=$texte')\"><img bouton></a></td><td id='texte'>"; 
if ($texte)
{
echo $texte;
}
echo"</td>";

Posté : 28 sept. 2006, 16:00
par eteocle
oui, ben c'est ce que j'ai écrit...

Posté : 28 sept. 2006, 16:11
par fred9999
non pas tout à fait :

si tu regarde bien tes ' était mal placés

Posté : 28 sept. 2006, 16:20
par eteocle
ok ! c'est une erreur dans le message..

Mon script est correctement écrit (comme tu l'as rédigé)

mais concernant ma question ??

Posté : 28 sept. 2006, 16:28
par fred9999
il y a un truc que je comprend pas :

c'est la :
<a href onclick=\"window.open('mon richtext.php'?texte=$texte)\"><img bouton></a>

tu clique bien sur une image non???
c'est un lien non???
alors pkoi on a pas un truc du genre :

<a href="mon richtext.php?texte=$texte)"><img src="bouton.jpg"></a>

après peu etre que c'es la fin de journnée et que je suis trop naze pour
comprendre mais peut tu m'éclairer :wink:

Posté : 28 sept. 2006, 16:29
par fred9999
oui il il a une faute sur mon dernier post : :oops:

il faut enlever la ")" du lien :wink:

Posté : 28 sept. 2006, 17:03
par iclo
Salut,

Je n'ai plus les spécification http en tête, mais il y a en effet une limite de taille à ce qu'on peut envoyé en methode GET (elle n'est d'ailleurs pas faite pour envoyer des données à la base)

En résumé, tu veux pouvoir utiliser la method post, tout en ayant un lien pour valider le formulaire.
Ca devrait pouvoir se faire en utilisant un javascript qui submitera le formulaire lors qu'on clique sur le lien (événement OnClick du <a href>)
Le lien remplacant le bouton submit en quelque sort.

Posté : 29 sept. 2006, 10:49
par eteocle
en fait le problème est que j'utilise déjà un formulaire pour envoyer des données à une base, notamment : un titre (champ titre), un texte (issu de mon richtext)

il faudrait donc que j'utilise un deuxième formulaire imbriqué dans le premier (si je peux dire)...ce qui ne m'apparait pas très facile...ne rique t-il pas d'y avoir confusion entre les 2 formulaires ? ou bien faut-il régiger le script d'une certaine façon ?

J'étais plutot parti sur une formule php ou javascript qui me permettrait de compresser peut etre mes données envoyées par href. La fonction rawurlencode est déjà intéressante mais ne suffit pas. Si le texte est très long ou comporte des objets comme des images, il est systématiquement tronqué à la fin.

Alors quelle solution ?

Posté : 29 sept. 2006, 11:47
par Ryle
Tu ne peux effectivement pas imbriquer un formulaire à l'intérieur d'un autre... en revanche rien ne t'empêche d'adresser un même formulaire à plusieurs destinataires en changeant simplement l'action. Ce n'est pas forcément ce qu'il y a de mieux (vu que tu enverrais quantité d'information inutile), mais ça peut se faire...

En php tu peux aussi placer ton $texte en session pour éviter d'avoir à le transmettre et l'interroger malgré tout

En javascript, si tu ouvre ton lien dans une popup tu peux interroger depuis la fenêtre ouverte les données contenues par la fenêtre ouvrantes...

Posté : 29 sept. 2006, 22:51
par eteocle
ok !

j'ouvre mon lien dans une popup..mais je n'y connais rien en javascript...quel script écrire ? j'ai bien recherché dans le forum mais je n'ai rien trouvé

Posté : 30 sept. 2006, 15:35
par eteocle
bon, j'essaye avec les sessions..mais ca ne donne rien

voilà mon script :

sur la page référente :
<?php
if ($PHPSESSID){session_start($PHPSESSID);}else{session_start();}
$rte=isset($_SESSION['rte']);

$sid=session_id();
$sname=session_name();

$rte=$HTTP_REFERER;
session_register("rte");

puis mon lien : <a href = "mapageappelée.php?<?=SID?>"><img src...></a>

ensuite sur ma page appelée :

session_start(); ..


voilà ! et bien rien ne se passe..impossible d'afficher ma variable $rte sur la page appelée...
Où est mon erreur ? pouvez-vous m'aider ..

Posté : 30 sept. 2006, 22:24
par eteocle
ok ! j'ai résolu mon problème..en fait, c'est tout bete..j'avais déclaré ma variable de session avant d'afficher $rte

....echo $rte; $_SESSION['var'] = $rte;
c'est la bonne écriture..
et là tout fonctionne

je peux passer une grande quantité de texte par href ...

les sessions, c'est vraiment SUPER !! :D