PHP5, Smarty et combo filtré en AJAX - PHP - Programmation
Marsh Posté le 28-12-2011 à 01:22:29
Utilises JQuery :
$('#myleftselectid').change(function(){
var that = $(this);
var selectedValue = that.val();
// Faire un appel AJAX ici en lui passant selectedValue, que tu traites en PHP pour récupérer du code html
// A ton retour AJAX, tu fourres ce code html dans ton second select
// avec un $('#myrightselectid').html('...monretourAJAX...');
});
Marsh Posté le 29-12-2011 à 00:57:02
Salut et merci pour l'amorce,
J'ai téléchargé jquery, modifié mon tempate comme suit :
<head>
[...]
<script type="text/javascript" src="ajax/jquery.js"></script>
<script language="Javascript">
$('#cbo_producteur').change(function(){
var that = $(this);
var selectedValue = that.val();
alert('testfred');
});</script>
[...]
</head>
[...]
Le code de ma combo
<select name="cbo_producteur" id="cbo_producteur" size="1">
Je vois pas la message box quand je change la valeur de ma combo
J'ai loupé quelquechose ?
Ca se débug comment le javascript ?
Merci !
Marsh Posté le 29-12-2011 à 01:06:53
J'ai isolé tout le code pour obtenir ça
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
<script type="text/javascript" src="ajax/jquery.js"></script>
<script language="Javascript">
$('#cbo_producteur').change(function(){
var that = $(this);
var selectedValue = that.val();
alert('testfred');
});</script>
</head>
<body>
<select name="cbo_producteur" id="cbo_producteur" size="1">
<option>test</option>
<option>test2</option>
</select>
</body>
</html>
Si quelqu'un voit l'erreur !
merci
Marsh Posté le 29-12-2011 à 11:24:04
Il te manque un petit quelque chose pour que cela fonctionne : regarde du côté de : (http://api.jquery.com/ready/)
Code :
|
Marsh Posté le 29-12-2011 à 12:25:26
Effectivement Il me manquait cette ligne pour mettre le code javascript avant les combo.
Si je mettait le code javascript après ça marchait.
J'arrive à ça
Code :
|
Il me reste plus que la partie pour appeler ma page .php qui exécutera ma requête et me renverra les résultats.
Quelqu'un aurait une amorce de code jquery qui peut faire ça ?
Merci
Marsh Posté le 29-12-2011 à 14:25:56
CyberDenix a écrit : Utilises JQuery : |
Comme te disais CyberDenix, il ne te reste plus qu'à faire un appel ajax : http://api.jquery.com/jQuery.ajax/
Marsh Posté le 30-12-2011 à 01:47:38
Donc j'ai réussi avec ça :
<script>
$(document).ready(function() {
$('#cbo_producteur').change(function(){
var that = $(this);
var selectedValue = that.val();
$.ajax({
type: "POST",
url: "get_test.php",
data: "idproducteur="+selectedValue
}).done(function( msg ) {
$('#cbo_serie').html(msg);
});
})
});
</script>
Par contre je m'aperçoit que le onchange ne fonctionne pas quand j'utilise les touches "monter" "descendre" du clavier.
Une idée ?
Marsh Posté le 30-12-2011 à 03:12:49
Mmmmmhhh dans ce cas il faut binder un keyup en plus du onchange, et jouer avec les codes de touche clavier
Code :
|
Marsh Posté le 30-12-2011 à 10:31:15
Le projet cascade jquery a le même comportement :
- http://archive.plugins.jquery.com/project/cascade
Sur un autre forum un mec conseille ça
Code :
|
Je vais essayer ce soir.
Marsh Posté le 26-12-2011 à 21:16:10
Bonjour,
Quelqu'un à une solution propre et simple pour faire une combo filtré a partir d'une autre combo en AJAX dans un contexte PHP / smarty ?
Merci