Problème:
Je voudrais transférer en utilisant jQuery une valeur dans un lien-attribut à la requête PHP / SQL.
Code HTML:
<a data-toggle="modal" href="#myModal" id="1"><i class="pull-right icon-eye-open"></i>HTML</a>
Code PHP:
<div id="myModal" class="modal hide fade"> <div class="modal-header"> <button class="close" data-dismiss="modal">×</button> <h3>Title</h3> </div> <div class="modal-body"> <?php $query = "SELECT * FROM table WHERE id = ID FROM JQUERY HERE"; $result = mysql_query($query) or die ('Error (' . mysql_errno() . ') ' . mysql_error()); ?> </div> <div class="modal-footer"> <a href="#" class="btn btn-info" data-dismiss="modal" >Close</a> </div> </div>
Scénario:
Lorsque l'utilisateur clique sur l'élément de lien qui contient data-toggle = "modal", jQuery doit prendre la valeur de l'attribut id (c'est-à-dire 1 dans ce cas) et l'envoyer à la requête SQL de sorte que la requête SQL ressembler:
$query = "SELECT * FROM table WHERE id = 1";
Code jQuery:
$("a[data-toggle=modal]").click(function(){ var essay_id = $(this).attr('id'); //Find $essay set it to essay_id in PHP //Alternatively create a $_SESSION['EID'] here });
Question:
Comment puis-je utiliser jQuery pour définir une variable ($ essay) en PHP? Ou comment puis-je créer une variable de session en PHP via jQuery?
Voici la solution,
<a href="#" id="1" class="push">click</a>
Utilisez un div sur votre corps modal, comme celui-ci
<div class="modal-body"> <div class="something" style="display:none;"> // here you can show your output dynamically </div> </div>
Maintenant, mettez des données dans le .something
avec ajax calling .please vérifiez http://api.jquery.com/jQuery.ajax/ pour en savoir plus sur jquery ajax.
$(function(){ $('.push').click(function(){ var essay_id = $(this).attr('id'); $.ajax({ type : 'post', url : 'your_url.php', // in here you should put your query data : 'post_id='+ essay_id, // here you pass your id via ajax . // in php you should use $_POST['post_id'] to get this value success : function(r) { // now you can show output in your modal $('#mymodal').show(); // put your modal id $('.something').show().html(r); } }); }); });
Solution finale
Code HTML:
<div id="myModal" class="modal hide fade"> <div class="modal-header"> <button class="close" data-dismiss="modal">×</button> <h3>Title</h3> </div> <div class="modal-body"> <div id="modalContent" style="display:none;"> </div> </div> <div class="modal-footer"> <a href="#" class="btn btn-info" data-dismiss="modal" >Close</a> </div> </div>
Code jQuery:
$("a[data-toggle=modal]").click(function() { var essay_id = $(this).attr('id'); $.ajax({ cache: false, type: 'POST', url: 'backend.php', data: 'EID='+essay_id, success: function(data) { $('#myModal').show(); $('#modalContent').show().html(data); } }); });