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 21718 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juillet 2018 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 

Votre réponse

1 réponse

Meilleure réponse
jordane45 21718 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 juillet 2018 Dernière intervention - 6 juil. 2015 à 18:45
1
Merci
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

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

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.