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

JavaScript Discussion :

Soucis Select2 - modification caractère utilisateur


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Soucis Select2 - modification caractère utilisateur
    Bonjour,

    je viens vers vous car je perds mes cheveux ....
    J'ai un select2 ( https://select2.github.io ), dans lequel j'importe un fichier json qui comprend toutes les communes et leurs codes Insee ...
    Jusqu'ici tout va bien au niveau du selectmultiple ,les gens tapent les communes et je récupère les id correspondant ....

    Mon soucis est que certaines communes type asnières-sur-seine , contiennent des tirets ... et je souhaiterais que l’auto complétion prennent en compte pour valeur asnières-sur-seine , quand les utilisateurs recherchent asnières sur seine (--> sans tiret )

    j'ai essayer plusieurs possibilités notamment en modifiant mon json lors de sa création du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if( strstr($commune,"-")) {
    			$cool2.='{
    			  "id": "'.$insee.'",
    			  "text": "'.utf8_encode(addslashes($commune)).'" || "'.utf8_encode(addslashes(str_replace(" ","-",$commune))).'",
    			  "element": "'.utf8_encode(addslashes($commune)).'"
    			},';
    		}
    		else{
    			$cool2.='{
    			  "id": "'.$insee.'",
    			  "text": "'.utf8_encode(addslashes($commune)).'",
    			  "element": "'.utf8_encode(addslashes($commune)).'"
    			},';
    Ou encore en utilisant le système de tags .... mais rien y fait ...

    Une âme charitable aurait elle une idée .... ?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je pense que si dans ton str_replace tu inversais " " et "-" ça irait mieux.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Merci
    Bonjour,
    Avant tout merci pour votre retour, mais j avais deja réparé cette erreur. Pour info mon soucis reste toujours le même...

    Autre info , dans le fichier .js, il y a une grille de remplacement pour les caractères spéciaux... mais ca ne fontionne pas pour le tiret ou l underscore.

    Je pense que s il y a bien une solution a mon soucis c est d édicté des règles avec des valeurs différentes ( comme dans le bout de code )... mais j ai beau trituré le truc , mais ca ne marche pas ...

    Merci encore pour votre retour

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Est-ce que tu pourrais poster une partie du fichier json. Idéalement avec des villes avec tirets.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    Bonjour,
    comme il s'agit d'autocomplétion au moment où tu auras tapé asniè, « asnières-sur-seine » devrait apparaître dans la liste, donc un clic dessus et point final.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Merci pour les réponses ...
    Coucou,
    Avant tout merci pour les réponses (désolé pour le retard ... )
    _ Pour NoSmoking : c'est ce que je dis au client ... mais ils pensent que certains de ses utilisateurs , voudront continuer à taper asnières sur seine , sans utiliser l' auto complétion
    _ Pour badaze : je vais te poster un petit exemple

    Sinon j'ai vu dans le code js du selectmultiple ceci ( désolé c'est minifier )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c) ...
    Meis j'ai essayé d'y intégrer les tirets ou underscore mais ça ne fonctionne pas ..

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    mais ils pensent que certains de ses utilisateurs , voudront continuer à taper asnières sur seine , sans utiliser l' auto complétion
    dans ce cas laisse les faire et au moment de la recherche, car je pense qu'il doit y avoir une recherche, tu supprimes les tirets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var txt = 'asnières-sur-seine';
    console.log(txt.replace(/-/g, ' '));

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut un petit exemple pour Badaze ...
    Coucou ,

    Vous trouverez un exemple du json émis :
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    var doubloncommune = {"donnees":[{
    			  "id": "77001",
    			  "text": "ACHERES-LA-FORET" || "ACHERES LA FORET",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "91001",
    			  "text": "ABBEVILLE-LA-RIVIERE" || "ABBEVILLE LA RIVIERE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "93001",
    			  "text": "AUBERVILLIERS",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "94001",
    			  "text": "ABLON-SUR-SEINE" || "ABLON SUR SEINE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "77002",
    			  "text": "AMILLIS",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "92002",
    			  "text": "ANTONY",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "94002",
    			  "text": "ALFORTVILLE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "95002",
    			  "text": "ABLEIGES",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "77003",
    			  "text": "AMPONVILLE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "78003",
    			  "text": "ABLIS",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "94003",
    			  "text": "ARCUEIL",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "77004",
    			  "text": "ANDREZEL",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "92004",
    			  "text": "ASNIERES-SUR-SEINE" || "ASNIERES SUR SEINE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "94004",
    			  "text": "BOISSY-SAINT-LEGER" || "BOISSY SAINT LEGER",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "77005",
    			  "text": "ANNET-SUR-MARNE" || "ANNET SUR MARNE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "78005",
    			  "text": "ACHERES",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "93005",
    			  "text": "AULNAY-SOUS-BOIS" || "AULNAY SOUS BOIS",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "77006",
    			  "text": "ARBONNE-LA-FORET" || "ARBONNE LA FORET",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "78006",
    			  "text": "ADAINVILLE",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "93006",
    			  "text": "BAGNOLET",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "77007",
    			  "text": "ARGENTIERES",
    			  "element": HTMLOptionElement
    			},{
    			  "id": "78007",
    			  "text": "AIGREMONT",
    			  "element": HTMLOptionElement
    			}, ...
    Hésitez pas si vous avez une idée

    MERCI d'avance

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut Merci Nosmoking...
    Merci pour le retour no smoking ...
    mon client est assez pointilleux (et un poil embêtant aussi ) ... il a pour référence le système d'auto complétion de https://www.vianavigo.com/ ...
    je lui indique que c'est pas le même système ... mais y comprend pas ...

    concernant ceci "dans ce cas laisse les faire et au moment de la recherche, car je pense qu'il doit y avoir une recherche, tu supprimes les tirets." -> en fait je récupère l'insee
    ce que veut le client , correspond juste à faciliter l'affichage pour les utilisateurs .

    Merci encore pour le temps passé

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    Visiblement le système dont tu parles fait la recherche en séparant le texte au niveau des espaces si existe.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut suite message NoSmoking...
    Parlez vous de l'exemple fourni par le client (vianavigo ) ... si oui en effet :
    si l'utilisateur, entre asnieres sur seine, ou asnieres-sur-seine , le système de via navigo associe les deux et ne marque pas d'erreur ...
    chez moi si j'indique asnieres sur seine (et non asnieres-sur-seine ) , il m'indique aucun résultat trouvé (d'ou le fait d'inscrire une règle || dans le json )

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    J'avais fait un truc un peu similaire, il ne te faut traiter, envoi au serveur, que des chaines en minuscule, sans accents et tiret et faire le tri coté serveur.
    Pour preuve regarde l'onglet réseaux dans la console ce qui est envoyé.

    Ex:
    saisie : ASNIéRES-SUR-SEINE
    envoi  : asniéres sur seine
    visiblement les accents sont traités coté serveur.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut tout ce qui est accent est géré par le fichier .js du select multiple
    En fait tout ce qui est accent est géré du côté du fichier js du select multiple ... mais cela ne prend pas en compte les tirets ou underscore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A",

  14. #14
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660
    Par défaut
    J'ai retrouvé le code (*) que j'avais utilisé
    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
    var $tr = {
      accents: [/[\300-\306]/g, /[\340-\346]/g, // A, a
        /[\310-\313]/g, /[\350-\353]/g, // E, e
        /[\314-\317]/g, /[\354-\357]/g, // I, i
        /[\322-\330]/g, /[\362-\370]/g, // O, o
        /[\331-\334]/g, /[\371-\374]/g, // U, u
        /[\321]/g, /[\361]/g, // N, n
        /[\307]/g, /[\347]/g, // C, c
        /\-/g
      ],
     
      noaccents: ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'N', 'n', 'C', 'c', ' '],
     
      clear: function (str) {
        var i;
        var nb = this.accents.length;
        for (i = 0; i < nb; i += 1) {
          str = str.replace(this.accents[i], this.noaccents[i]);
        }
        return str.toLowerCase();
      }
    }
    et un appel du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var txt = 'ASNIéRES-SUR-Seine';
    txt = $tr.clear( txt);
    console.log( txt);
    (*) version originale que j'avais trouvé sympa : http://www.finalclap.com/faq/257-jav...mplacer-accent

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2017
    Messages : 34
    Points : 24
    Points
    24
    Par défaut je suis embêtant mais ...
    Merci Nosmoking le code est top (je le garde de côté )
    Néanmoins dans ce cas , c'est pas top

    En fait , la difficulté est que le tiret doit être supprimé dans la saisie (au cas ou ) mais bien présent dans l'affichage dans le select multiple car l'écriture officiel de l'Insee du Plessis-Robinson est bien avec un tiret . (il est limite chiant le client !!!! )
    Autre chose, "le plessis-robinson" en exemple , s'écrit avec un espace et un tiret, je ne peux donc faire un code à la volée qui remplacerait tout les espaces par un tiret ou tous les tirets par un espace ...

    Donc à présumer, la seule solution s'avère être d'affecter plusieurs possibilités d'écriture à un code insee (message de 15h31 )... sauf que cette sa... de select2 ne fonctionne guère ( en plus je me dis que je pourrais affecter dans mon json les 2 ecritures a savoir asnières-sur-seine et asnieres sur seine ) mais le select2 est également lié à une map leaflet ( + le formulaire ) et tout est relié au insee des communes ....

    Moral de l'histoire Bachibouzouc !!!!!!!
    je continue de trifouiller la chose et je reviens vers vous si je trouve une soluce ...

  16. #16
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je ne sais pas si c'est encore utile.

    Le code ci-dessous remplace l'espace par un tiret.

    Code html : 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <!DOCTYPE html>
    <html>
    <head>
    <script>
    var doubloncommune = {"donnees":[{
         "id": "77001",
         "text": 'ACHERES-LA-FORET',
         "element": HTMLOptionElement
       },{
         "id": "91001",
         "text": "ABBEVILLE-LA-RIVIERE",
         "element": HTMLOptionElement
       },{
         "id": "93001",
         "text": "AUBERVILLIERS",
         "element": HTMLOptionElement
       },{
         "id": "94001",
         "text": "ABLON-SUR-SEINE",
         "element": HTMLOptionElement
       },{
         "id": "77002",
         "text": "AMILLIS",
         "element": HTMLOptionElement
       },{
         "id": "92002",
         "text": "ANTONY",
         "element": HTMLOptionElement
       },{
         "id": "94002",
         "text": "ALFORTVILLE",
         "element": HTMLOptionElement
       },{
         "id": "01000",
         "text": "ABBEVILLE-LA-RIVIERETTE",
         "element": HTMLOptionElement
       },{
         "id": "95002",
         "text": 'ABLEIGES',
         "element": HTMLOptionElement
       }]};
      //console.log(doubloncommune.donnees);
    function loaded() {  
      // remplissage de la liste
      var html = "";
      for (var i=0;i<doubloncommune.donnees.length;i++) {
       
       html = html + '<option id="'+doubloncommune.donnees[i].id+'">'+doubloncommune.donnees[i].text+'</option>';
      }
      
      document.getElementById('toto').innerHTML = html;
      
      // évènement 
      inp.onkeypress = function (evt) {
       
       if (evt.char == ' ') {
        //console.log(evt);
        evt.target.value = evt.target.value.substr(0,evt.target.value.length)+'-';
        evt.preventDefault();
       }
      }  
    }
    </script>
    </head>
    <body onload="loaded()">
    <input type=text list=toto size="40" id="inp">
    <datalist id='toto'>
    </datalist>
    </body>
    </html>

    Le code ci-dessous remplace un tiret par un espace. Corollaire il ne doit pas y avoir de tirets.

    Code html : 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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <!DOCTYPE html>
    <html>
    <head>
    <script>
    var doubloncommune = {"donnees":[{
         "id": "77001",
         "text": 'ACHERES LA FORET',
         "element": HTMLOptionElement
       },{
         "id": "91001",
         "text": "ABBEVILLE LA RIVIERE",
         "element": HTMLOptionElement
       },{
         "id": "93001",
         "text": "AUBERVILLIERS",
         "element": HTMLOptionElement
       },{
         "id": "94001",
         "text": "ABLON SUR SEINE",
         "element": HTMLOptionElement
       },{
         "id": "77002",
         "text": "AMILLIS",
         "element": HTMLOptionElement
       },{
         "id": "92002",
         "text": "ANTONY",
         "element": HTMLOptionElement
       },{
         "id": "94002",
         "text": "ALFORTVILLE",
         "element": HTMLOptionElement
       },{
         "id": "01000",
         "text": "ABBEVILLE LA RIVIERETTE",
         "element": HTMLOptionElement
       },{
         "id": "95002",
         "text": 'ABLEIGES',
         "element": HTMLOptionElement
       }]};
      //console.log(doubloncommune.donnees);
    function loaded() {  
      // remplissage de la liste
      var html = "";
      for (var i=0;i<doubloncommune.donnees.length;i++) {
       
       html = html + '<option id="'+doubloncommune.donnees[i].id+'">'+doubloncommune.donnees[i].text+'</option>';
      }
      
      document.getElementById('toto').innerHTML = html;
      
      // évènement 
      inp.onkeypress = function (evt) {
       
       if (evt.char == '-') {
        //console.log(evt);
        evt.target.value = evt.target.value.substr(0,evt.target.value.length)+' ';
        evt.preventDefault();
       }
      }  
    }
    </script>
    </head>
    <body onload="loaded()">
    <input type=text list=toto size="40" id="inp">
    <datalist id='toto'>
    </datalist>
    </body>
    </html>

Discussions similaires

  1. Soucis de modification de champ via formulaire
    Par symphyle dans le forum IHM
    Réponses: 3
    Dernier message: 13/01/2009, 19h59
  2. Modification caractère d'un code
    Par chloe100 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 07/05/2008, 12h26
  3. [FLASH MX2004] petit soucis XML et caractères spéciaux
    Par Isses dans le forum Intégration
    Réponses: 20
    Dernier message: 25/04/2006, 13h24
  4. Réponses: 4
    Dernier message: 29/09/2005, 18h29

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