IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

plugin bassistance. Comment récupérer plus d'informations ?


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut plugin bassistance. Comment récupérer plus d'informations ?
    bonjour
    je début avec Jquery , j'essaye d'utiliser l'autocomplete de bassistance

    coté serveur (asp) je génere un fichier xml du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <options>
                 <option>description1</option>
                 <option>description2</option>
    </options>
    coté javascript :
    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
    function suggest(jqselector, url) {
    	$j(jqselector).autocomplete(url, {
    		highlight : false,
    		parse: parseXML,
    		formatItem: formatItem,
    		formatResult: formatResult,
    		cacheLength: 1	
    	});
    };
     
    function parseXML(xml) {
    	var results = [];
    	$j(xml).find('option').each(function() {
    		var value = $j(this).text();
    		results[results.length] = { 'data': { value: value }, 'result': value, 'value': value };
    	});
    	return results;
    };
     
    function formatItem(data) {
    	return data.value;
    };
     
    function formatResult(data) {
    	return data.value;
    };

    tout marche mais je veux récupérer plus d'informations

    par exemple au lieu d'une seule option par ligne je veux une description et une numéro qui s'affichent dans l'autocomplete et idealement un numero d'index (qui me servira pour faire des mise a jour en appellant des fonctions a la sélection d'un item de la liste d'autosuggestion)

    j'ai trouvé des exemples en JSON mais pas en xml

    merci de votre aide

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Hi !

    Je vois bien un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <options>
                 <anOption>
                                 <option>id1</option>
                                 <option>description1</option>
                                 <option>value1</option>
                 </anOption>
                 <anOption>
                                 <option>id2</option>
                                 <option>description2</option>
                                 <option>value2</option>
                 </anOption>            
    </options>
    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
    function suggest(jqselector, url) {
    	$j(jqselector).autocomplete(url, {
    		highlight : false,
    		parse: parseXML,
    		formatItem: formatItem,
    		formatResult: formatResult,
    		cacheLength: 1	
    	});
    };
     
    function parseXML(xml) {
    	var results = [];
    	$j(xml).find('anOption').each(function() {
                    $j(xml).find('option').each(function() {
    		        var value = $j(this).text();
    		        [....]
                    });
    	});
    
    	$j(xml).find('option').each(function() {
    		var value = $j(this).text();
    		results[results.length] = { 'data': { value: value }, 'result': value, 'value': value };
    	});
    	return results;
    };
     
    function formatItem(data) {
    	return data.value;
    };
     
    function formatResult(data) {
    	return data.value;
    };
    Pour info, Je n'ai pas testé

    M

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    merci Macois mais je ne comprends pas comment je recupére les variable coté javascript (la syntaxe de jquery ne m'est pas familiére)

    déja je veux a la sélection executer une fonction que je lui passerais la 3 éme option du fichier xml


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $j('#mon_select').result(function(event, item) {
    	ma_fontion(item.koi?);
    		});
    a ma fonction je lui passe item.value?
    aussi si tu veux bien m'expliquer ce que tu fais dans le code que t'as fait ca m'aiderais bien

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Oki je commente donc parseXML et corrige une erreur $j(xml).find('option') => $j(this).find('option') + virer ancien code

    DONNEES
    <options>
    <anOption>
    <option>id1</option>
    <option>description1</option>
    <option>value1</option>
    </anOption>
    <anOption>
    <option>id2</option>
    <option>description2</option>
    <option>value2</option>
    </anOption>
    </options>

    Parcours du xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function parseXML(xml) {
    	var results = [];
            /* l'element html en paramètre va être recupere par jquery et il va faire une recherche dessus pour recuperer tous les elements anOption fils de xml et pour chaque (méthode each) nous aller executer le bloc de code contenu*/
    	$j(xml).find('anOption').each(function() {
                    /* pour chaque anOption(this) jquery va faire une recherche dessus pour recuperer tous les elements option fils et pour chaque (méthode each) nous aller executer le bloc de code contenu : [...]*/
                    $j(this).find('option').each(function() {
    		        [....]
                    });
    	});
    	return results;
    };

    Recuperations des valeurs
    [....] ====> :
    premier $j(this).text() => idX
    second $j(this).text() => descriptionX
    troisieme $j(this).text() => valueX

    text() : Get the combined text contents of each element in the set of matched elements, including their descendants.

    Voilà sauf erreur, je pense que je ferai ainsi

    M

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    ok je teste ca et je te tiens au courant
    merci pour ton aide

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    j'y arrive pas j'ai toujours une erreur javascript ou la fonction n'est pas définie


    coté serveur j'ai génerer un fichier du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <option> 
    	<item>1</item> 
    	<item>item1description</item> 
    	<item>item1ID</item> 
    </option>
    <option> 
    	<item>2</item> 
    	<item>item2description</item> 
    	<item>item2ID</item> 
    </option>
    je garde le parseXML original je vois dans l'autocomple les 3 items collés
    alors que je veux en afficher que les deux premiers
    j'essaye ton parseXML , ca coince
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function parseXML(xml) {
    	var results = [];
            /* l'element html en paramètre va être recupere par jquery et il va faire une recherche dessus pour recuperer tous les elements anOption fils de xml et pour chaque (méthode each) nous aller executer le bloc de code contenu*/
    	$j(xml).find('option').each(function() {
                    /* pour chaque anOption(this) jquery va faire une recherche dessus pour recuperer tous les elements option fils et pour chaque (méthode each) nous aller executer le bloc de code contenu : [...]*/
                    $j(this).find('item').each(function() {
    		        [....]
                    });
    	});
    	return results;
    };
    dans le [....] tu m'as dit faut recupérer les variables mais je n'y arrive pas

    je vous rappelle que je suis vraiment debutant jquery sa syntaxe je n'y comprends rien
    merci beaucoup pour votre aide

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/03/2012, 22h47
  2. Comment Récupérer les informations de version d'un fichier dll
    Par elyusufiyasyn dans le forum VBScript
    Réponses: 1
    Dernier message: 16/08/2007, 20h07
  3. Réponses: 3
    Dernier message: 10/03/2006, 14h15
  4. Réponses: 6
    Dernier message: 28/09/2003, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo