Problème en php et Javascript

Résolu
nicofree Messages postés 42 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 5 décembre 2015 - 6 juil. 2015 à 17:31
jordane45 Messages postés 38206 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 14 juin 2024 - 6 juil. 2015 à 18:45
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

jordane45 Messages postés 38206 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 14 juin 2024 344
6 juil. 2015 à 18:45
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
1
Rejoignez-nous