Bonsoir bonsoir!
J'ai un problèmes ...encore une fois ^^' Smiley lol
je vous met mon bout de code et je vous explique mon soucis

		
//Bouton de quantité
<input onclick="afficherPanier()" type="number" id="quantity_5e7b7f39843ec" class="input-text qty text" step="1" min="1" max="" name="quantity" value="1" title="Qté" size="4" placeholder="" inputmode="numeric">
        <p id="demo"></p> 

//Bouton d'ajout panier
		<button id="panier" type="submit" name="add-to-cart" style="display:none" onclick="afficherValid()" value="<?php echo esc_attr( $product->get_id() ); ?>" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?>
		</button>
	
//Bouton de validation        
<a id="validation" href="<?php echo esc_url( wc_get_checkout_url() ); ?>"  class="checkout-button button alt wc-forward" style="display:none"> 
	    <?php esc_html_e( 'Proceed to checkout', 'woocommerce' ); ?>
	    </a>


<script>
function afficherPanier()
{
  if(document.getElementById("panier").style.display == "none")
    document.getElementById("panier").style.display = "block";
 
}
</script>
<script>
    function afficherValid()
{
  if(document.getElementById("validation").style.display == "none")
    document.getElementById("validation").style.display = "block";
}
</script> 

Donc en gros le panier et la valide sont caché pour obligé le "client" à suivre la cheminement souhaité. Je voudrais que pour chaque quantité une "textarea" s'affiche, si 3qt --> 3textarea

Vous auriez une p'tite idée svp?
Salut tout le monde!
Bon j'ai essayer de faire mon code qui donne ceci :
<input		onclick="txt()"
			type="number"
			id="<?php echo esc_attr( $input_id ); ?>"
			class="<?php echo esc_attr( join( ' ', (array) $classes ) ); ?>"
			step="<?php echo esc_attr( $step ); ?>"
			min="<?php echo esc_attr( $min_value ); ?>"
			max="<?php echo esc_attr( 0 < $max_value ? $max_value : '' ); ?>"
			name="<?php echo esc_attr( $input_name ); ?>"
			value="<?php echo esc_attr( $input_value ); ?>"
			title="<?php echo esc_attr_x( 'Qty', 'Product quantity input 				 
                        tooltip', 'woocommerce' ); ?>"
			size="4"
			placeholder="<?php echo esc_attr( $placeholder ); ?>"
			inputmode="<?php echo esc_attr( $inputmode ); ?>" />


<input id="txt1" type="textarea" style="display:none">
<input id="txt2" type="textarea" style="display:none">
<input id="txt3" type="textarea" style="display:none">


<script>
function txt() {
var qteValue = <?php echo esc_attr( $input_value ).value;
      if(qteValue = 1)
      {
      document.getElementById("txt1").style.display="block";
      }
      else if (qteValue = 2)
      {
      document.getElementById("txt1").style.display="block";
      document.getElementById("txt2").style.display="block";
      }
      else 
      {
      document.getElementById("txt1").style.display="block";
      document.getElementById("txt2").style.display="block";
      document.getElementById("txt3").style.display="block";
      }
} 


Mais j'ai aucune "textarea" retourné... je me suis peut être planté sur la variable de la quantité... Une p'tite idée Smiley sweatdrop ?
Modifié par Kartman241116 (26 Mar 2020 - 15:49)
Modérateur
bonjour,


Il y a plusieurs erreurs :

1) Tes style inline prévalent sur les styles appliqués via js , a passé donc dans la feuille de style.

2) <input type="textarea"> n'existent pas, mais <textarea></textarea> oui

3) Enfin pour tester les valeur, if(qteValue = 1) s'ecrit plutôt if(qteValue == 1) ou if(qteValue === 1), selon si tu veut tester la valeur où la valeur et son type. voir : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Op%C3%A9rateurs_de_comparaison


cdt,
Modifié par gcyrillus (26 Mar 2020 - 16:38)
Je te remercie de ta réponse et de tes remarques, je vais faire les modifs tout de suite et voir comme ça se passe Smiley ravi

edit
euh pardon mais je doit les mettre dans style.css de mon plugin c'est bien ca Smiley sweatdrop en les remettant tel quel ? Et ensuite pour faire appel aux "textarea" ça ne change rien ?
Modifié par Kartman241116 (26 Mar 2020 - 18:24)
Modérateur
Voici un fiddle avec les styles en ligne : https://jsfiddle.net/rq2wsdo1/
et sans https://jsfiddle.net/rq2wsdo1/2/
Si ton plugin à un fichier de style dédié, c'est mieux en effet .

Une bonne pratique est plutôt de faire le switch d'une classe à l'autre. Cela te permet alors de gérer plusieurs règles de style au besoin et facilite la mise à jour/correction de la mise en forme sans éditer tes scripts.

Bonne soirée.

edit : je ne serais pas disponible ces prochains jours (OSE) alors je te laisse l'idée , https://jsfiddle.net/jtp5zu2q/1/ , le javascript utilisé n'est vraiment pas terrible , c'est juste l'idée à reprendre . il te permet aussi de te ravisé sur le nombre à afficher ...
Modifié par gcyrillus (26 Mar 2020 - 21:47)
Smiley merci beaucoup gcyrillus ! J'y vois plus claire grâce à toi maintenant ça me permet de mieux comprendre Smiley winner
Encore merci et bonne soirée a toi aussi !