IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Changer le contenu d'un textarea à partir du choix d'une liste déroulante


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut [PHP-JS] Changer le contenu d'un textarea à partir du choix d'une liste déroulante
    Bonjour,

    Le code suivant lance une requête sur une base Mysql pour remplir une liste déroulante qui doit contenir les références des articles trouvés.

    Je souhaite que:

    - après l'éxécution de la requête le premier champ de liste déroulante soit selectionné et que la description correspondante soit affichée dans le textarea.

    - si l'élément selectionné change, le contenu du textarea soit mis à jour.

    Je préfére ne pas utiliser de méthode post ou de bouton supplémentaire. Je pense donc que je suis obligé d'utilisé une fonction javascript dans le onchange.

    Le problème se situe dans la fonction change_ref(selectObj), je pense.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <?php
    $id = $_GET["id"];
    $rep = $_GET["rep"];
    $host = "xxxx";
    $user = "xxxx";
    $pass = "xxxx";
    $base = "xxxx";
    	if($db = mysql_connect($host, $user, $pass)) {
    		if($dbb = mysql_select_db($base)) {
    		$query = "SELECT * FROM `catalogue` WHERE `PictId` = '$id' AND `Rep` = '$rep'";
    		$result = mysql_query($query);
    		$i = 0;
    		while($tab = mysql_fetch_array($result)) {
    			global $Reftab;
    			$Reftab[$i] = $tab['Reference']; //Stocke les références dans un tableau
    			$Infoptab[$i] = $tab['Infop']; //Stocke les informations concernant l'article dans un tableau
    			$i++;
    		}
    		mysql_close();
    		} else {
            die("connexion à la base $base impossible");
    		}
    	} else {
    			die("connexion au serveur $host impossible");
    	  }  
    ?>
    <HTML>
    <HEAD>
    <script type="text/javascript">
    function change_ref(selectObj) {
    	int idx;
    	idx = selectObj.selectedIndex;
    	alert(idx);
    	<?php echo $idx;?> = idx;
    }
    </script>
    </HEAD>
    <BODY>
    	<form name="form1">
    		Référence N° <SELECT name="Refcombo" onChange="change_ref(this);">
    		<?php
    		for($j=0;$j<count($Reftab);$j++) {
    			echo'<OPTION>'.$Reftab[$j].'</OPTION>';
    		}
    		?>
    		</SELECT></td>
    	</form>
    	Informations sur l article : <br>
    	<textarea name="Infoarticle" style="overflow:none" cols="44" rows="1" readonly="readonly" wrap="physical" dir="ltr" lang="fr">
    	<?php 
    	echo $Infoptab[$idx];
    	?>
    	</textarea>
    </BODY></HTML>

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Mettre du PHP dans une fonction JS c'est pas une très bonne idée... Parce que quand PHP va générer ton code HTML la variable $idx n'existe pas encore si j'ai bien compris.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 50
    Points : 56
    Points
    56
    Par défaut
    Salut,

    Deux choses:

    - Les variables dans ton $Infoptab ne sont connues que du PHP (serveur), donc quand tu changes la valeur du menu déroulant le javascript ne peut pas trouver ces données. Il vaudrait peut-être mieux que tu les enregistres dans un tableau javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    infoPTab = new array();
    <?php
    foreach($Infoptab as $cle => $valeur)
        echo "infoPTab[".$cle."]=".$valeur";";
    ?>
    - Dans ta fonction JS il faut que tu modifie la 'value' du TEXTAREA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function change_ref(selectObj) {
    	int idx;
    	idx = selectObj.selectedIndex; /* Tu récupères ton index */
    	alert(idx);
    	<?php echo $idx;?> = idx;
     
            tabElements = document.getElementsByName('Infoarticle');
            elementTextarea = tabElements[0]; /* On récupère l'élément représentant le textarea */
            elementTextarea.value = infoPTab[idx]; /* On modifie la valeur du textarea */
    }

  4. #4
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    De toute les facons, ca marche comme ca :

    Tu peux mettre du Javascript dans du PHP (le serveur sert une page au client, donc HTML et Javascript)

    Mais tu ne peux en AUCUN cas mettre de PHP dans du Javascript (la page une fois chez le client, toute les variables PHP ont été remplacés....)

    Par contre, tu peux faire ce que tu veux avec un petit bout d'AJAX....
    Veni Vidi Vici
    -------------------------
    Mes articles : developpez.com ou bien vbview.net
    -------------------------
    Et SURTOUT ne pas oublier la bible PHP : --> php_manual_fr.chm!!!
    Et aussi : --> pear_manual_fr.chm!!!

    Ou encore : --> Les tutoriaux & cours PHP de Développez.com
    -------------------------

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Merci pour vos réponses,

    Depuis que je m'essaie au php, j'en reviens à chaque fois à ce genre de problèmes et il m'est difficile de trouver des parades pour ne pas écrire de code php dans du javascript.
    Merci pour les précisions au sujet de l'utilisations des variables php dans le javascript. Je l'avais pourtant lu dans la FAQ :

    Comment mettre du JavaScript dans un script PHP ?

    Il est vrai que la solution serait peut être l'Ajax, mais vu que j'ai commencé le projet en php, je préfére le terminer en php. Peut être dans un projet futur

    Pysk0B0b ton idée me parait pas mal, j'avais regardé dans la faq il y a script php pour copier un tableau php dans un tableau javascript mais j'ai pas réussi à avoir le résultat voulu, le tableau se copiait mais j'avais une page blanche, tous les controles avaient disparu .

    J'aissaie ton code demain matin et je vous tiens au courrant.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/06/2011, 16h47
  2. Réponses: 3
    Dernier message: 16/03/2011, 16h47
  3. [PHP-JS] Récupération du contenu d'un textarea
    Par adoumaz dans le forum Langage
    Réponses: 6
    Dernier message: 08/02/2011, 11h25
  4. Réponses: 8
    Dernier message: 18/12/2006, 12h36
  5. Réponses: 1
    Dernier message: 20/04/2006, 09h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo