Bonjour,
J'ai fais le prochaint est: donc j'ai un tableau et a la fin le tableau a un bouton qui va ouvrir une fenêtre (modal). J'ai donné a ce bouton une data value:
<button data-toggle="modal" id="button_ng" data-value="<?php foreach(get_next_game($team->link_name) as $next_game_info){ echo $next_game_info->id;} ?>" data-target="#<?php foreach(get_next_game($team->link_name) as $next_game_info){ echo $next_game_info->team;} ?>_ng" class="btn btn-primary btn-circle"><i class="fa fa-list"></i></button>
Je précise que ce bouton est dans un tableau foreach. Maintenant, quand je clique sur le bouton. J'aimerais que le data-link s'affiche ou bien ici: l'id. Je fais la prochaine chose:
var id = $('#button_ng').data('value');
$('#button_ng').click(function(){
alert(id);
});
Le problème est que pour le premier bouton ca l'affiche bien, mais quand je clique sur les autres, ca ne marche pas...:/
merci d'avance pour votre aide!! ;)
Bonjour,
ton problème vient du fait que tu cibles ton élément par son id css ( #button_ng ) et que tous tes bouttons ont le même ( ce qui n'est pas correct d'ailleurs car l'id doit être unique à un seul élément de la page )
Ajoute une classe css à ton boutton, par exemple .button_ng
et
$('.button_ng').click(function(e){
e.preventDefault();
var id = $(this).data("value");
alert(id);
});
Yo, stock le résultat de ton foreeach dans une variable et ajoute le ensuite dans ton data-value.
Car c'est vomitif de voir un foreach inséré dans du code html comme cela.
Ca marche bien mais en faite j'ai un form de ce genre:
<form method="post" class="edit-next-game" data-value="<?php foreach(get_next_game($team->link_name) as $next_game_info){ echo $next_game_info->id;} ?>" >
<?php foreach(get_next_game($team->link_name) as $next_game_info): ?>
<div class="row">
<div class="col-lg-6">
<label for="date">Date:</label>
<input class="form-control" id="date" data-inputmask-clearmaskonlostfocus="false" value="<?php echo date('d-m-Y' ,strtotime($next_game_info->datetime)); ?>" />
</div>
<div class="col-lg-6">
<label for="time" >Heure:</label>
<input class="form-control" id="time" data-inputmask-clearmaskonlostfocus="false" value="<?php echo date('G\hi' ,strtotime($next_game_info->datetime)); ?>" />
</div>
</div>
<label for="home" >Domicile:</label>
<select class="form-control" id="home">
<option>--club--</option>
<?php foreach(get_clubs() as $club): ?>
<option value="<?php echo $club->team; ?>" <?php if($club->team == $next_game_info->home){echo "selected";} ?>><?php echo $club->team; ?></option>
<?php endforeach; ?>
</select>
<label for="away" >Extérieur:</label>
<select class="form-control" id="away">
<option>--club--</option>
<?php foreach(get_clubs() as $club): ?>
<option value="<?php echo $club->team; ?>" <?php if($club->team == $next_game_info->away){echo "selected";} ?>><?php echo $club->team; ?></option>
<?php endforeach; ?>
</select>
<div class="row">
<div class="col-lg-6">
<label for="scoreh" >Score visités:</label>
<input type="number" min="0" max="250" class="form-control" id="scoreh" />
</div>
<div class="col-lg-6">
<label for="scorea" >Score visteurs:</label>
<input type="number" min="0" max="250" class="form-control" id="scorea" />
</div>
</div>
<label for="place" >Lieu:</label>
<select class="form-control" id="place_ng">
<option>--sale--</option>
<?php foreach(get_places() as $place): ?>
<option value="<?php echo $place->hall; ?>" <?php if($place->hall == stripslashes($next_game_info->place)){echo "selected";} ?>><?php echo $place->hall; ?></option>
<?php endforeach; ?>
</select>
<br>
<button class="btn btn-primary" type="submit" class="submit">Enregistrer</button>
<?php endforeach; ?>
</form>
et le problème est que je ne sais pas récuperer les autres champs en faisant:
$(document).ready(function(){
$('.edit-next-game').submit(function(e){
e.preventDefault();
var id = $(this).data("value");
var date = $("#date").val();
var time = $("#time").val();
alert(id);
});
});
...
Merci d'avance!!