Modifier la valeur "min" d'une input range avec une variable

Fermé
TR_2000 Messages postés 21 Date d'inscription mardi 17 mai 2022 Statut Membre Dernière intervention 28 juin 2022 - 17 juin 2022 à 10:48
 DoctorHow - 18 juin 2022 à 03:43
Bonjour,

Voici une partie de mon code HTML :

<div class="slidecontainer">
                <input type="range" min="freq_0" max=200 value="50" class="slider" id="slider_frequency">
                <p>Center Frequency : <span id="center_frequency"></span></p>
            </div>
   
        </section>
        <div class="after_axis">
            <br>
            <input type="button" onclick="javascript:SelectZoom()" value="Zoom"></button>
            <script>
                // Affichage Initial
                	var nb_freq = 9;
                    var center_frequency = 2.4e3
                    var bandwidth = 2
                    var frequency = new Array(nb_freq);
                    
                    frequency[0] = center_frequency-bandwidth/(2);
                    pas = bandwidth/(nb_freq-1);                        

                    for(let i = 0; i<nb_freq; i++){
                        frequency[i] = frequency[0] + pas*i;
                        document.getElementById("freq_"+i).innerHTML=frequency[i];
                    } 
                // Slider frequences
                    var slider = document.getElementById("slider_frequency");
                    var output = document.getElementById("center_frequency");
                    output.innerHTML = slider.value;
                    
                    slider.oninput = function(){
                    output.innerHTML = this.value;
                    }
            </script>


Je cherche à attribuer aux valeur min et max de mon slider les variables frequency[0] et frequency[8]. Ces variables sont modifiées au cours du temps et ainsi, mon slider pourra lui aussi évoluer en fonction.


Merci pour votre aide,
A voir également:

2 réponses

patricia@84 Messages postés 106 Date d'inscription vendredi 27 novembre 2015 Statut Membre Dernière intervention 24 septembre 2023 9
17 juin 2022 à 12:44
Bonjour,

Pour attribuer des variables à vos valeurs, qui, je pense, sont celles de votre ligne 2, il faudrait que ces valeurs soient récupérées sous forme de variables $frequency[0] et $frequency[8] avant cette ligne et non après.

Il faut ensuite insérer vos variables. Si je devais coder en php, cela donnerait quelque chose comme cela :
<?php
echo '<input type="range" min="'.$frequency[0.'" max="'.$frequency[8].'" class="slider" id="slider_frequency">';
?>

en supprimant le "value".



Patricia
1
TR_2000 Messages postés 21 Date d'inscription mardi 17 mai 2022 Statut Membre Dernière intervention 28 juin 2022 1
17 juin 2022 à 13:02
D'accord je vais essayer merci !
0
Salut,
en JavaScript:

monInputFrequency.setAttribute('min', valeurNumerique)

je n'ai pas compris ceci:
min="freq_0"
freq_0 n'est pas une valeur numérique et ne correspond à rien(sauf une erreur).

Quant au recours à PHP il est nécessaire si les min et max viennent d'une base de données mais à éviter si c'est calculé dans le JavaScript.
Si cela vient d'une base de données le plus simple est simple de le faire avec un echo

<?php
echo ("<input ype=range min=".$valueMin." max=".$valueMax." value=.$value." >")
?>
éventuellement dans une boucle comme disait patricia@84 si les données récupérées sont tabulaires(et l'écriture des input dans la boucle).

Mieux aussi de rajouter l'attribut name pour un input.
Voir aussi la balise <label> qui est nécessaire pour les input.
A noter aussi qu'un input est un élément qui doit se trouver dans un formulaire(balise <form>).
Cela peut fonctionner sans mais c'est nettement moins bien à de nombreux égards.

Exemple de ce qui doit être fait(avec form et label):

https://www.w3schools.com/w3css/w3css_input.asp
0