[AJAX] Actualiser un select
Bonjour a tous, je suis novice en Ajax et j'aurai besoin d'aide sur mon problème de logique.
J'ai lu quelque tutoriel et je me suis basé sur un exemple qu'on ma donner, mais je ne m'en sort pas... :(
Donc comme écris dans le titre, j'aimerai que quand on sectionne un champ dans mon select celui-ci passe automatiquement en selected="selected" .
Comme vous pourrez le constater c'est pas du PHP que j'utilise mais c'est du Python avec Django, bon globalement sa ne change en rien à la logique... ;)
Donc ci-dessous mon formulaire, on j'affiche les élement de mon select avec une boucle, mon form renvoi les données avec la méthode get (c'est ce qu'on ma conseiller) et l'action ce passe avec un onChange.
Code:
1 2 3 4 5 6 7 8
|
<form class="actu-forms" name="actualisation" method="get">
<select onChange="actu_album()" name="collection">
{% for album in list_album %}
<option value="{{ album.id }}" {% ifequal selected_album.id album.id %}selected="selected"{% endifequal %}>{{ album.name }}</option>
{% endfor %}
</select>
</form> |
Mon code Javascript, qui est tous sauf complet, j'ai juste mi un alert pour voir si je recevais une réponse, mais il ne ce passe rien...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
function actu_album() {
$.get(
"{% url libertyproject.imagin.ajax.selected_album %}", /* url de ma fonction */
$("form.actu-forms").serialize(),
function (data)
{
var string = "";
for (var p in data)
{
string += p+":"+String(data[p])+"\n";
}
alert(string);
}
);
} |
Et ma fonction en python qui traite la donné reçu et qui renvoi le résultat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
def selected_album(request):
response = {}
if len(request.GET) > 0:
collection = request.GET.get('collection', None)
if collection != None:
user_fictif = "1"
list_album = Collection.objects.filter(user=user_fictif, pk=collection)
response.update(request.GET.copy())
response.update({'code': list_album[0]})
else:
response.update({'code': 1})
return HttpResponseAjax(response) |
Si vous préférer m'aider en m'aiguillant avec du PHP c'est pas un souci.
Merci d'avance pour votre aide !!! ;)