Select et onSelect

Répondre
plc2k
le 18/08/2004 à 12:41
plc2k
Salut,
dans mon code php, je fais une requete sql à partir de laquelle je construit un Select.J'aimerai que lorsque je selectione un element de la liste, cela change le contenu de mon textarea. Celui ci fait parti du meme formulaire.
Je vous paste le code que j'ai faait et qui ne marchepas.
MErci d'avance

<?php 


echo "<form name='formmail' method='post' Action='$PHP_SELF'>";
echo "<SELECT NAME=\"mailtype\"><option selected>-Select Mail-</option>";
$query="SELECT * FROM $sql_trade_mail";
$result = mysql_query($query,$db);

while ($data=mysql_fetch_object($result)) {
$type=$data->type;
$titre=$data->titre;
$message=$data->message;
echo"<option onSelect=\"document.formmail.article.value=$titre;\">$type</option>";
}

echo "</SELECT>";

echo "<TR><td align='center'><textarea rows='24' name='article' cols='90'>$message</textarea></td></TR>";
echo "<TR><td align='center'><input type='submit' name='Submit' value='Modifier' class='noir11pix'></td></TR>";
echo "</form>";




?>
plc2k
le 18/08/2004 à 14:02
plc2k
oui, apparement c'est plus onChange ,mais meme avec onChange ça marche pas. 8-(
zebden
le 18/08/2004 à 14:33
zebden
l'evenement se fait dans la balise select et non dans la balise option...
zebdinou pour les intimes / Blog : http://www.zebden.fr
plc2k
le 18/08/2004 à 15:20
plc2k
oui, j'ai progressé, j'arrive maintenant a faire afficher dans le texarea des choses, mais il semble que lorsque ma variable est trop grande cela ne marche pas :
echo "<form name=formmail method=post Action='$PHP_SELF'>";

echo "<SELECT id=sites size=1 onchange=\"article.value = sites.value\";>";
$query="SELECT * FROM TABLE_toto Where type ='valid_ok'";
$result = mysql_query($query,$db);

while ($data=mysql_fetch_object($result)) {
$type=$data->type;
$titre=$data->titre;
$message=$data->message;
echo"<option value=$message>$type</option>";
echo"<option value=1>$titre</option>";
}

echo "</SELECT>";
echo "<TR><td align='center'><textarea rows=24 id=article cols=90> </textarea></td></TR>";
echo "</form>";
echo "</table>";


dans ce code, au lieu d'afficher $type dans le menu deroulant, il le remplace par la valeur de $message qui est trés longue, si a la place de $message dans le select , je met "2" la ca marche im m'affiche bien le $type.

de plus toujours dans le cas de value=$message , lorsque je change sur $type; il me pas dans le textarea la valeur complete de $message mais juste un morceau voir juste une balise ...

Merci d'avance pour votre aide
plc2k
le 18/08/2004 à 15:38
plc2k
apparement le probleme vient du fait que $message contient des balises html ...

j'ai essayé : 'message'
'.message.'
' ".message." '

rien n'y fait, il y a des differences selon la methode utilisée mais rien de totalement bon.
Sedilbur
le 18/08/2004 à 15:51
Sedilbur
Le problème vient peut-être de là:
echo"<option value=$message>$type</option>";
echo"<option value=1>$titre</option>";

essaye plutôt ça:
echo '<option value="'. $message .'">'. $type .'</option>';
echo '<option value="1">'. $titre .'</option>';
plc2k
le 18/08/2004 à 16:05
plc2k
non marche pas non plus, en fait le probleme vient pas des balise html qui se trouve dans ma variable mais des " " qui se trouve dans ma variables. j'ai beau faire 1 ou plusieurs addslash sur ma variable , rien n'y change ...
Doit bien y avoir un moyen que les " qui sont à l'interieur de ma variable ne soient pas interpretés ..
plc2k
le 20/08/2004 à 10:51
plc2k
non bibi ca marche pas meme avec 10 \ ...
jai resolu le probleme avec la fonction php htmlspecialchars.
voila
merci a tous
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours