Bonjour,
J'arrive à faire un autocomplete personnalisé avec jquery ui.
Je souhaite faire la même chose en transmettant une variable additionnelle en plus du terme saisi.
Voici mon script :
Mon code fonctionne dans le sens où la variable additionnelle est bien envoyée mais depuis que j'ai modifié la source le render personnalisé ne fonctionne plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 $(".autocomplete_bib").autocomplete({ source: function(request, response) { $.ajax({ url: "choix_bib_rechav.php", datatype: "json", data: { term: request.term, cat: $("input.check_cat:checked").map(function () {return this.value;}).get().join(",") }, success: function(data) { response($.map(data, function(obj) { return { label: obj.name, value: obj.name, description: obj.description }; })); } }) }, minLength: 1, focus: function( event, ui ) { if(ui.item.idbib!=0) { $( "#new_idbib" ).val( ui.item.bib ); } else { $( "#new_idbib" ).val( 'Ville ou Code Postal' ); } $( "#idbib" ).val( ui.item.idbib ); return false; }, select: function( event, ui ) { if(ui.item.idbib!=0) { $( "#new_idbib" ).val( ui.item.bib ); $( "#new_idbib" ).attr('disabled', 'disabled'); $("#reset_bib").show(); } else { $( "#new_idbib" ).val( 'Ville ou Code Postal' ); } $( "#idbib" ).val( ui.item.idbib ); return false; } }) .data( "ui-autocomplete" )._renderItem = function( ul, item ) { return $( "<li>" ) .append( "<a>" + item.bib + "<br>" + item.ville + "<br>" + item.cp + "</a>" ) .appendTo( ul ); };
Voici mon code qui fonctionne sans prendre en compte la variable additionnelle :
Comment faire pour combiner render et transmission de variable supplémentaire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 $(".autocomplete_bib").autocomplete({ source: "choix_bib_rechav.php?cat="+$("input.check_cat:checked").map(function () {return this.value;}).get().join(","), minLength: 1, focus: function( event, ui ) { if(ui.item.idbib!=0) { $( "#new_idbib" ).val( ui.item.bib ); } else { $( "#new_idbib" ).val( 'Ville ou Code Postal' ); } $( "#idbib" ).val( ui.item.idbib ); return false; }, select: function( event, ui ) { if(ui.item.idbib!=0) { $( "#new_idbib" ).val( ui.item.bib ); $( "#new_idbib" ).attr('disabled', 'disabled'); $("#reset_bib").show(); } else { $( "#new_idbib" ).val( 'Ville ou Code Postal' ); } $( "#idbib" ).val( ui.item.idbib ); return false; } }) .data( "ui-autocomplete" )._renderItem = function( ul, item ) { return $( "<li>" ) .append( "<a>" + item.bib + "<br>" + item.ville + "<br>" + item.cp + "</a>" ) .appendTo( ul ); };
Partager