Problème en php et Javascript [Résolu]

Signaler
Messages postés
42
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
5 décembre 2015
-
Messages postés
28515
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 juin 2020
-
Bonjour à tous,

Pour diverses raisons, je voudrai dynamisé un formulaire php avec des calculs javascript (éviter de recharger la page toutes les 2 mintutes )

Voici le bout de code qui ne fonctionne pas :


<?php

$nb_jours = 30 ;

for($i = 1; $i <= $nb_jours; $i++)
{

?>
<script>
document.getElementById(target<?php echo $i; ?>).value = 'test <?php echo $i; ?>' ;
</script>

<input type="text" id="target<?php echo $i; ?>" style="font-size:12px;" /> <br />

<?php } ?>



Or si je change
document.getElementById(target<?php echo $i; ?>).value
par
document.getElementById(target12).value

ça fonctionne mais uniquement sur la ligne 12 forcement.

Je voudrai affecter toutes les ligne (ici 30)
donc ligne 1 contient un champ avec "test 1"
ligne 2 contient un champ avec "test 2"
ligne 3 contient un champ avec "test 3"
...
Quelqu'un aurait-il une idée ?

1 réponse

Messages postés
28515
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 juin 2020
330
Bonjour,

Il est préférable de sortir le JS de la boucle ... et de le placer à la fin.



<?php
$nb_jours = 30 ;
for($i = 1; $i <= $nb_jours; $i++){
   echo "<input type='text' class='target' id='target".$i."' style='font-size:12px;'/> 
	       <br />";
}
 ?>
 
 <script type="text/javascript">
 // Premiere possibilité en utilisant la varable $nb_jours
 var nb = "<?php echo $nb_jours; ?>";
 for(var i=1;i<=nb;i++){
  var id_elem = "target"+i;
	var nouvelleValeur = "test "+i ;
	document.getElementById(id_elem).value = nouvelleValeur;
 }
 
 //Deuxieme possibilite (en utilisant la class pour parcourir..)
 var elems = document.getElementsByClassName('target');
 for (var i = 0; i < elems.length; ++i) {
  var id_elem = "target"+i;
	var nouvelleValeur = "test "+i ;
	document.getElementById(id_elem).value = nouvelleValeur;
}
 </script>




Je t'ai mis deux possibilités de code JS.
A toi de choisir celle que tu préfères