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 :
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 );
        };
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.

Voici mon code qui fonctionne sans prendre en compte la variable additionnelle :
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 );
        };
Comment faire pour combiner render et transmission de variable supplémentaire ?