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

Bibliothèques & Frameworks Discussion :

Autocompletion (Ajax.autocompleter) : besoin d'aide


Sujet :

Bibliothèques & Frameworks

  1. #1
    Candidat au Club
    Inscrit en
    décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Autocompletion (Ajax.autocompleter) : besoin d'aide
    Tout est dans le titre! J'utilise le navigateur Firefox. J'aimerais réaliser une autocompletion sur un champ text, les suggestions étant situées sur un webservice.
    Voici ce que j'ai deja fait (qui ne fonctionnent pas! )
    Popup.tpl :
    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
    <link rel="stylesheet" type="text/css" href="{$THEME_PATH}style.css">
    <script language="JavaScript" type="text/javascript" src="include/js/general.js"></script>
    <script language="JavaScript" type="text/javascript" src="include/js/{php} echo $_SESSION['authenticated_user_language'];{/php}.lang.js?{php} echo $_SESSION['vtiger_version'];{/php}"></script>
    <script language="JavaScript" type="text/javascript" src="modules/{$MODULE}/{$MODULE}.js"></script>
    <script language="javascript" type="text/javascript" src="include/js/js/prototype.js"></script>
    <script type='text/javascript' src='include/js/js/scriptaculous.js'></script>
     
     
    <body class="small" marginwidth=0 marginheight=0 leftmargin=0 topmargin=0 bottommargin=0 rightmargin=0>
     
    		<form action="index.php" onsubmit="return false;" method='post' name='ref_form' id='ref_form'>
     
    	       Reference du produit :
             <input type='text' name='ref' id='ref'  value='{php} echo $_POST["ref"];{/php}'/>
             <div class='autocomplete' id='autocomplete'></div>
             <input type='submit' value='Valider' class="crmbutton small create"/>
        </form>
     
    	 <script>
    	   new Ajax.Autocompleter ('ref','autocomplete','autocompletion.php',
                {ldelim}
                   paramName: 'ref'
                {rdelim});
       </script>
     
    </body>
    </html>
    autocompletion.php :
    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
    <ul class="references">
        <?php try {
     
            $client = new SoapClient('http://www.webservice_magento.fr:80/env.wsdl', array('trace' => 1, 'soap_version'  => SOAP_1_1));
     
            $O=$client->getDebRef($_POST["reef"]);
     
     
            if($O->ref1!="")echo"<li class=\"reference\">".$O->ref1."<br><span class=\"informal\">$O->nom1</span> </li>";
            if($O->ref2!="")echo"<li class=\"reference\">".$O->ref2." <br><span class=\"informal\">$O->nom2</span> </li>";
            if($O->ref3!="")echo"<li class=\"reference\">".$O->ref3." <br><span class=\"informal\">$O->nom3</span> </li>";
            if($O->ref4!="")echo"<li class=\"reference\">".$O->ref4." <br><span class=\"informal\">$O->nom4</span> </li>";
            if($O->ref5!="")echo"<li class=\"reference\">".$O->ref5." <br><span class=\"informal\">$O->nom5</span> </li>";
            if($O->ref6!="")echo"<li class=\"reference\">".$O->ref6." <br><span class=\"informal\">$O->nom6</span> </li>";
            if($O->ref7!="")echo"<li class=\"reference\">".$O->ref7." <br><span class=\"informal\">$O->nom7</span> </li>";
            if($O->ref8!="")echo"<li class=\"reference\">".$O->ref8." <br><span class=\"informal\">$O->nom8</span> </li>";
            if($O->ref9!="")echo"<li class=\"reference\">".$O->ref9." <br><span class=\"informal\">$O->nom9</span> </li>";
            if($O->ref10!="")echo"<li class=\"reference\">".$O->ref10." <br><span class=\"informal\">$O->nom10</span> </li>";
     
     
     
        } catch (SoapFault $fault) {
            echo $fault;
        }
     
    /*
    Exemple de ligne avec un onclick
     
    if($O->ref1!="")echo"<li class=\"reference\" onclick='document.ref_form.ref.value=\"".$O->ref1."\";document.ref_form.submit();'>".$O->ref1."<br><span class=\"informal\">$O->nom1</span> </li>";*/
        ?>
     
     
    </ul>
    Donc voilà, si vous pouviez m'aider svp ....

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2007
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2007
    Messages : 908
    Points : 1 302
    Points
    1 302
    Par défaut
    Bonjour,

    la syntaxe à utiliser est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ajax.Autocompleter(id_of_text_field, id_of_div_to_populate, url, options);
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script>
    	   new Ajax.Autocompleter ('ref','autocomplete','autocompletion.php',
                {ldelim}
                   paramName: 'ref'
                {rdelim});
       </script>
    je ne sais pas ce que tu souhaites faire avec {ldelim} et {rdelim}, mais c'est invalide en javascript comme syntaxe...
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Candidat au Club
    Inscrit en
    décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Je suis obliger de mettre {ldelim}....{rdelim}, c'est les balises ouvrantes et fermantes qui remplacent { et } dans Smarty

  4. #4
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2007
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2007
    Messages : 908
    Points : 1 302
    Points
    1 302
    Par défaut
    on peut voir le code HTML généré ?
    Peux tu préciser un peu ce qui ne fonctionne pas (erreur javascript ? et quelle erreur ; la requete ajax se fait-elle ?...)
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  5. #5
    Candidat au Club
    Inscrit en
    décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Je n'ai pas d'erreur qui s'affiche, je ne sais même pas si la requête Ajax s'exécute.

    Code source de la page générée :
    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
    <link rel="stylesheet" type="text/css" href="themes/bluelagoon/style.css">
    <script language="JavaScript" type="text/javascript" src="include/js/general.js"></script>
    <script language="JavaScript" type="text/javascript" src="include/js/fr_fr.lang.js?5.0.3"></script>
    <script language="JavaScript" type="text/javascript" src="modules/Products/Products.js"></script>
    <script language="javascript" type="text/javascript" src="include/js/js/prototype.js"></script>
    <script type='text/javascript' src='include/js/js/scriptaculous.js'></script>
     
    <body class="small" marginwidth=0 marginheight=0 leftmargin=0 topmargin=0 bottommargin=0 rightmargin=0>
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="mailClient mailClientBg">
    	<tr>
    	<td>
     
    		<table width="100%" border="0" cellpadding="0" cellspacing="0">
    			<tr>
    					<td class="moduleName" width="80%" style="padding-left:10px;">Produits</td>
    					<td  width=30% nowrap class="componentName" align=right>.tiger</td>
    			</tr>
    		</table>
    		<table width="100%" cellpadding="5" cellspacing="0" border="0"  class="homePageMatrixHdr">
    			<tr>
     
    			<td style="padding:10px;" >		
    			<form action="" method='post' name='ref_form' id='ref_form'><input type="hidden" name="PHPSESSID" value="7d34c6fadb8104feb8b68393beda6c5c" />
    				<table width="100%" cellpadding="5" cellspacing="0">
    				<tr>
    					<td width="20%" class="dvtCellLabel"><img src="themes/bluelagoon/images/basicSearchLens.gif"></td>
    					<td width="30%" class="dvtCellLabel">
    			Reference du produit :
                        	<input type='text' name='ref' id='ref'  value=''/>
    		   	<div class='autocomplete' id='autocomplete'></div></td>
                            <td width="20%" class="dvtCellLabel"><input type='submit' name='valider' value='Valider' class="crmbutton small create"/></td>
     
    				</tr>
                                    </table>
    		        </form>
                            </td>
    			</tr>
    		</table>
           </td>
           </tr>
     
     
    </table>
    		<script type="text/javascript">
    	  		new Ajax.Autocompleter ("ref","autocomplete","autocompletion.php",
                		{
                   			paramName: 'ref',
    	       			method: 'post'
                		});
    		</script>

  6. #6
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2007
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2007
    Messages : 908
    Points : 1 302
    Points
    1 302
    Par défaut
    Citation Envoyé par mymy2002 Voir le message
    Je n'ai pas d'erreur qui s'affiche, je ne sais même pas si la requête Ajax s'exécute.
    Tu as firebug avec firefox ? dans la console tu peux voir si une requete se fait.
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  7. #7
    Candidat au Club
    Inscrit en
    décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Oui je l'ai mais je ne sais pas m'en servir. (Quelle plaie! vous allez penser...lol)

  8. #8
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2007
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2007
    Messages : 908
    Points : 1 302
    Points
    1 302
    Par défaut
    C'est vraiment utile comme outil, je te conseille de t'y intéresser...

    Es tu sur que ton fichier php autocompletion.php est appelé ? si tu modifies ton formulaire HTML pour qu'il ait comme action autocompletion.php et que tu le soumets, tu as bien un resultat ? Et si oui, quel est-il ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form action="autocompletion.php" method='post' name='ref_form' id='ref_form'><input type="hidden" name="PHPSESSID" value="7d34c6fadb8104feb8b68393beda6c5c" />
    				<table width="100%" cellpadding="5" cellspacing="0">
    				<tr>
    					<td width="20%" class="dvtCellLabel"><img src="themes/bluelagoon/images/basicSearchLens.gif"></td>
    					<td width="30%" class="dvtCellLabel">
    			Reference du produit :
                        	<input type='text' name='ref' id='ref'  value=''/>
    		   	<div class='autocomplete' id='autocomplete'></div></td>
                            <td width="20%" class="dvtCellLabel"><input type='submit' name='valider' value='Valider' class="crmbutton small create"/></td>
     
    				</tr>
                                    </table>
    		        </form>
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  9. #9
    Candidat au Club
    Inscrit en
    décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Donc j'ai fait appel à autocompletion.php à la soumissions de mon formulaire et j'ai une erreur SOAP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Warning: SoapClient::SoapClient() [soapclient.soapclient]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /opt/lampp/htdocs/tiger/autocompletion.php on line 7
     
    Warning: SoapClient::SoapClient(http://www.webservice_magento.fr:80/env.wsdl) [soapclient.soapclient]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /opt/lampp/htdocs/tiger/autocompletion.php on line 7
     
    Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O warning : failed to load external entity "http://www.webservice_magento.fr:80/env.wsdl" in /opt/lampp/htdocs/tiger/autocompletion.php on line 7
    SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.webservice_magento.fr:80/env.wsdl' in /opt/lampp/htdocs/tiger/autocompletion.php:7 Stack trace: #0 /opt/lampp/htdocs/tiger/autocompletion.php(7): SoapClient->SoapClient('http://www.webs...', Array) #1 {main}

  10. #10
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2007
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2007
    Messages : 908
    Points : 1 302
    Points
    1 302
    Par défaut
    Et bien tant que tu as une erreur à ce niveau, ca ne peut pas marcher en AJAX : ta requete est en erreur serveur (500) donc rien ne va fonctionner... il faut commencer par corriger ton probleme PHP...

    Bon courage
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  11. #11
    Candidat au Club
    Inscrit en
    décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Et vous n'avez pas d'idée pour la résoudre? Problème de librairie?

  12. #12
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2007
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2007
    Messages : 908
    Points : 1 302
    Points
    1 302
    Par défaut
    Je ne connais rien en PHP désolé... demande au forum concerné
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

Discussions similaires

  1. [AJAX] liste d'autocompletion besoin d'aide
    Par cyril07 dans le forum AJAX
    Réponses: 11
    Dernier message: 06/05/2010, 11h25
  2. ASP et AJAX AutoComplete
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 27/11/2009, 22h56
  3. [AJAX] autocompletion pas a pas
    Par boulika dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2006, 12h25
  4. [AJAX] Besoin d'aide sur AJAX ...
    Par kcizth dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/04/2006, 10h45
  5. [AJAX] ajax - autocompletion
    Par spectorrr dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2006, 17h08

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