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

nicofree 42 Messages postés mardi 23 mars 2004Date d'inscription 5 décembre 2015 Dernière intervention - 6 juil. 2015 à 17:31 - Dernière réponse : jordane45 19324 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 décembre 2017 Dernière intervention
- 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 ?
Afficher la suite 

1 réponse

Répondre au sujet
jordane45 19324 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 décembre 2017 Dernière intervention - 6 juil. 2015 à 18:45
+1
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.