Probleme appel fonction javascript

Résolu
Bonjour,
J'ai un problème je ne trouve pas le moyen d'envoyer la valeur de ma liste déroulante vers ma fonction javascript
. j'ai essayé ca <script>ajouter.couleur.value</script> mais ca ne fonctionne pas!! J'ai besoin d'aide merci ;)

Mon code:

ma fonction javascript:
function creer_balise(balise_debut,balise_fin){

.....
}

echo"<form method='post' action='{$_SERVER['PHP_SELF']}' name='ajouter' onSubmit='return verification()' enctype='multipart/form-data'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50' value=$titre><br><br>
<input type='button' onclick=creer_balise('[b]','/b') value='Gras'>
<input type='button' onclick=creer_balise('[i]','/i') value='Italique'><br><br>
couleur: <select name='couleur' onChange=creer_balise('[color=<script>ajouter.couleur.value</script>]','/color­')>
<option style='color:Red' value=red>Rouge</option>
<option style='color:Forestgreen' value=Forestgreen>Vert Foncé</option>
<option style='color:#40a900' value=#40a900>Vert</option>
<option style='color:#DAA520' value=#DAA520>Beige</option>
<option style='color:#FF4500' value=#FF4500>Orange</option>
<option style='color:yellow' value=yellow>Jaune</option>
<option style='color:Blue' value=blue>Bleu</option>
<option style='color:Skyblue' value=Skyblue>Bleu ciel</option>
</select><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'>$contenu</textarea></p>
<input type='checkbox' name='photo_ok'><em>Photo(optionnel):</em><input type='file' name='photo'/><br>
<input type='submit' class='button' name='ajout' value='Ajouter la news'>
</form>";

Configuration: Windows XP
Firefox 2.0.0.12
Configuration: Windows XP
Firefox 2.0.0.12

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonsoir,

    dans ta fonction tu rajoutes un autre argument id_a_lire

    et dans ta fonction tu mets
    couleur=document.getElementById(id_a_lire).value;

    pour ta liste tu mets:

    <select id='couleur' name='couleur' onChange="creer_balise('couleur')>


    Ainsi la fonction vient lire ce qui est selectionné dans la liste, pas besoin de lui passer la valeur en argument

    Tu t'arranges pour les autres arguments de ta fonction.
    1. je ne peux pas car je dois récuperer ma couleur pour mon bbcode:
      $contenu = preg_replace('#\[color=(red|Forestgreen|blue|yellow|#40a900|#DAA520|#FF4500|Skyblue|black)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $contenu);
  2. bonjour
    j'ai un soucis avec une fonction js appelé dans un script php5 :
    j'ai devellopé questionnaire avec réponse prédefini dans menu déroulant et une option "autre" pour chaque question qui , si elle est selectionné , fait apparaitre un champs text d'insertion.
    pour ce faire j'appel donc la fonction suivante qui permet de rendre visible ou non le champ text.

    <script language="javascript">

    function RendVisibleAutre(texte)
    {

    if (texte=="autre")
    document.getElementById("test").style.visibility= 'visible';
    else
    document.getElementById("test").style.visibility= 'hidden';
    }
    </script>

    mon problème est que mon questionnaire est dynamique. j'ai donc 1 BDD avec 3 tables (question,reponse,reponse_client) et donc je ve utilisé pour chque question la fonction js. je ne c donc pas comment faire pour que cette fonction chqnge de nom chaque fois qu'elle est appelé .

    pour vous expliquez mieu ce que je ve voici ce que j'ai pour le moment :

    $lResult3 = $lCoupon->SelectQuestion();
    foreach ($lResult3 as $row3)
    { $nbQuestion++;

    echo '<p>';
    //affichage de la question
    echo $row3['intitule_question'];
    echo '</p>';
    $question=$row3['id_question'];

    $lResult4 = $lCoupon->SelectReponse($question);

    echo " <SELECT size=1 onchange='RendVisibleAutre(this.value)' name='reponse".$nbQuestion."'> ";
    foreach ($lResult4 as $row4)
    {
    //affichage des reponse possible dasn option
    $reponse=$row4['id_reponse'];

    echo "\n".'<option value='.$row4['id_reponse'].'>';
    echo $row4['intitule_reponse'];
    //echo $reponse;
    echo '</option>';
    }
    ?>
    //affichage du champ autre dans chque menu deroulant qui apparai mais
    <option value='autre'>autre</option></SELECT>

    <p>
    <div id="test" style="visibility:hidden;position:absolute;">
    <input type="text" name='autre'></div>
    </p>

    MERCIIIIIIIIIIIIIIIIIIIIIII :)
    je suis en manque de savoirrr totallll svppp j'ai besoin de vous
    1. Bonsoir,

      mets des { } dans tes if else

      et mets une laert pou voir si tu lis bien la valeur "autre"

      
      function RendVisibleAutre(texte)
      {
      alert("Valuer selectionnee :"+texte);
      if (texte=="autre"){
          document.getElementById("test").style.visibility= 'visible';
      }else{
      document.getElementById("test").style.visibility= 'hidden';
      }
      }