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

APIs Google Discussion :

Formulaire inséré dans un return ?


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut Formulaire inséré dans un return ?
    Une question qui ne doit pas être compliquée pour un non débutant...

    Je voudrais que l'affichage des coordonnées sur la carte google ajoute aussi la possibilité d'entrer ces coordonnées dans un carnet d'adresses

    J'ai donc ajouté un formulaire dans le return de generateMarkerHtml: function(m) {
    est-ce une bonne méthode ?
    Sachant que je fais un test avec un input type="text" pour voir si je lis bien le code postal.
    google locator affiche bien sa valeur (44000) avec m.test
    comment faire pour que la value de input type="text" name="postcode" l'affiche aussi ?
    Javascript ? php ? quelle variable utiliser ? Je n'y arrive pas, besoin d'un coup de main.

    Code modifié :
    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
     
    <script type="text/javascript">
    var ex;
    (function(){
        var storeLocator = new UnirgyStoreLocator({
            mapEl: $('map'),
            sidebarEl: $('sidebar'),
            searchUrl: '<?php echo $this->getUrl('ustorelocator/location/search')?>',
            generateSidebarHtml: function(m) {
                return '<b>' + m.title + '</b> (' + parseFloat(m.distance).toFixed(1) + ' ' + m.units + ')<br/>'
                    + m.address_display.replace(/\n/, '<br/>');
            },
            generateMarkerHtml: function(m) {
                var url = m.website_url.replace(/\s/,'');
                return '<b>' + m.title + '</b> <br/>'
                    + m.street_address + '&nbsp;' + m.test + '&nbsp;' + m.city + '<br/>'
                    + '<br/>'
                    + '<form action="<?php echo $this->getSaveUrl() ?>" method="post" name="formulaire" id="form-validate">'
                    + '<input type="hidden" name="country_id" value="" />'
                    + '<input type="text" name="telephone" value="<?php echo $this->__('my default shipping address') ?>" />'+ '<br/>'
                    + '<input type="text" name="postcode" value="" />'+ '<br/>'
                    + '<input type="hidden" name="default_shipping" value="1" />'
                    + '<button type="submit" title="<?php echo $this->__('my default shipping address') ?>" class="button"><span><span><?php echo $this->__('my default shipping address') ?></span></span></button>' + '<br/>'
                    + '</form>'
                    + '<br/>'
                    + (m.phone.length>5 ? m.phone + '<br/>' : '')
                    + (url.length>5 ? '<a href="' + (url.match(/@/) ? 'mailto:' : '') + url + '"><strong>' + url + '</strong></a><br/>' : '')
                    /*
                    + '<p>Product Types: '
                    + (m.product_types.match(/baby/) ? 'Custom Baby; ' : '')
                    + (m.product_types.match(/wedding/) ? 'Custom Wedding; ' : '')
                    + (m.product_types.match(/card/) ? 'Greeting Cards; ' : '')
                    + '</p>'*/
                    + '<p>' + m.notes + '</p>';
            }
        });
    Code origine :
    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
     
    <script type="text/javascript">
    var ex;
    (function(){
        var storeLocator = new UnirgyStoreLocator({
            mapEl: $('map'),
            sidebarEl: $('sidebar'),
            searchUrl: '<?php echo $this->getUrl('ustorelocator/location/search')?>',
            generateSidebarHtml: function(m) {
                return '<b>' + m.title + '</b> (' + parseFloat(m.distance).toFixed(1) + ' ' + m.units + ')<br/>'
                    + m.address_display.replace(/\n/, '<br/>');
            },
            generateMarkerHtml: function(m) {
                var url = m.website_url.replace(/\s/,'');
                return '<b>' + m.title + '</b> <br/>'
                    + m.street_address + '&nbsp;' + m.test + '&nbsp;' + m.city + '<br/>'
                    + (m.phone.length>5 ? m.phone + '<br/>' : '')
                    + '<br/>'
                    + (url.length>5 ? '<a href="' + (url.match(/@/) ? 'mailto:' : '') + url + '"><strong>' + url + '</strong></a><br/>' : '')
                    /*
                    + '<p>Product Types: '
                    + (m.product_types.match(/baby/) ? 'Custom Baby; ' : '')
                    + (m.product_types.match(/wedding/) ? 'Custom Wedding; ' : '')
                    + (m.product_types.match(/card/) ? 'Greeting Cards; ' : '')
                    + '</p>'*/
                    + '<p>' + m.notes + '</p>';
            }
        });
     
        Event.observe(window, 'load', function () {
            storeLocator.load();
     
    <?php if ($_defaultLocation): ?>
            $('storelocator-results').style.visibility = 'visible';
            storeLocator.search('<?php echo addslashes($_defaultLocation) ?>', {
                radius: '<?php echo addslashes($_defaultRadius) ?>'
                /*, type: $('product_type').value*/
            });
    <?php endif ?>
        });
     
        Event.observe(window, 'unload', GUnload);
     
    <?php if ($_showSearch): ?>
        Event.observe($('store_locator_form'), 'submit', function() {
            $('storelocator-results').style.visibility = 'visible';
            storeLocator.search($('address').value, {
                radius: $('radius').value
                /*, type: $('product_type').value*/
            });
        });
    <?php endif ?>
     
    })();
    </script>

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut Pas d'idée ?
    Je cherche mais ne trouve pas.
    Si qqn a une idée ou une piste à explorer ça fera mon bonheur !

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Simplement ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     + '<input type="text" name="postcode" value="' + m.test + '" />'+ '<br/>'
    ERE

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Merci beaucoup, ça me débloque bien.

    J'ai ensuite réussi (exploit!) à
    afficher le formulaire, seulement pour les personnes connectées
    et
    insérer dans les champs texte les valeurs que je veux entrer dans mon carnet d'adresse, y compris nom et prénom de la personne connectée.

    Pour le faire je me suis basé sur le formulaire de
    app/design/frontend/base/default/template/customer/address/edit.phtml

    Mais maintenant je bloque pour enregistrer les données de ce formulaire dans le carnet d'adresse de la personne connectée. Il n'indique pas d'erreur mais rien ne se passe lorsque je clique sur le bouton. Il doit bien en avoir une erreur évidente qqpart... Si qqn arrive à mettre le doigt dessus plus vite que moi ce serait génial.

    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
     
                    + '<?php if (Mage::helper('customer')->isLoggedIn()) : ?>'
                    + '<?php $customer = Mage::getSingleton('customer/session')->getCustomer() ?>'
                    + '<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="form-validate">'
                    + '<input type="text" name="firstname" id="firstname" value="<?php echo $customer->getFirstname() ?>" />'+ '<br/>'
                    + '<input type="text" name="lastname" id="lastname" value="<?php echo $customer->getLastname() ?>" />'+ '<br/>'  
                    + '<input type="text" name="street[]" id="street_1" value="' + m.title + '" title="<?php echo $this->__('Street Address') ?>" class="required-entry input-text" />'+ '<br/>'
                    + '<input type="text" name="street[]" id="street_2" value="' + m.street_address + '" title="<?php echo $this->__('Street Address '.'2') ?>" class="input-text" />'+ '<br/>'
                    + '<input type="text" name="postcode" id="zip" value="' + m.test + '" title="<?php echo $this->__('Zip/Postal Code') ?>" class="validate-zip-international required-entry input-text" />'+ '<br/>'
                    + '<input type="text" name="city" id="city" value="' + m.city + '" title="<?php echo $this->__('City') ?>" class="required-entry input-text" />'+ '<br/>'
                    + '<input type="text" name="country_id" id="country_id" value="France" />'+ '<br/>'
                    + '<input type="text" name="telephone" id="telephone" title="<?php echo $this->__('Telephone') ?>" value="' + m.phone + '" />'+ '<br/>'
                    + '<input type="hidden" name="default_shipping" value="1" />'
                    + '<button type="submit" title="<?php echo $this->__('Continue') ?>" class="button" onclick="shipping.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>' + '<br/>'
                    + '</form>'
                    + '<?php endif; ?>';
    Rq : Je ne peux appeler le bouton d'enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <button type="submit" title="<?php echo $this->__('Save Address') ?>" class="button"><span><span><?php echo $this->__('Save Address') ?></span></span></button>
    parce que l'apostrophe de la traduction française fait planter le formulaire.

    Merci d'avance pour le coup de main

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut Please Help SVP
    Si une bonne âme peut jeter un coup d'oeil sur ce script.
    Je n'arrive pas à trouver la solution. L'adresse n'est pas enregistrée dans le carnet d'adresses et je ne sais pas pourquoi.

    J'ai modifié qq lignes :
    ajouté var dataform (au bon endroit ?) et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $this->getBlockHtml('formkey')?>
    cette ligne faisant planter ce script, je l'ai en fait directement remplacée par sa valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="form_key" value="Qmr...etc..." type="text">
    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
     
            generateMarkerHtml: function(m) {
                var url = m.website_url.replace(/\s/,'');
                var dataForm = new VarienForm('form-validate', true);
                return '<b>' + m.title + '</b> <br/>'
                    + m.street_address + '&nbsp;' + m.test + '&nbsp;' + m.city + '<br/>'
                    + (m.phone.length>5 ? m.phone + '<br/>' : '')
                    + (url.length>5 ? '<a href="' + (url.match(/@/) ? 'mailto:' : '') + url + '"><strong>' + url + '</strong></a><br/>' : '')
                    + '<p>' + m.notes + '</p>'
                    + '<?php if (Mage::helper('customer')->isLoggedIn()) : ?>'
                    + '<?php $customer = Mage::getSingleton('customer/session')->getCustomer() ?>'
                    + '<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="form-validate">'
     
                    + '<?php echo $this->getBlockHtml('formkey')?>'
     
                    + '<input type="text" name="firstname" id="firstname" value="<?php echo $customer->getFirstname() ?>" />'+ '<br/>'
                    + '<input type="text" name="lastname" id="lastname" value="<?php echo $customer->getLastname() ?>" />'+ '<br/>'  
                    + '<input type="text" name="street[]" id="street_1" value="' + m.title + '" title="<?php echo $this->__('Street Address') ?>" />'+ '<br/>'
     
                    + '<input type="text" name="postcode" id="zip" value="' + m.test + '" title="<?php echo $this->__('Zip/Postal Code') ?>" />'+ '<br/>'
     
                    + '<input type="text" name="city" id="city" value="' + m.city + '" title="<?php echo $this->__('City') ?>" />'+ '<br/>'
     
                    + '<input type="text" name="country" id="country" value="France" />'+ '<br/>'
     
                    + '<input type="text" name="telephone" id="telephone" title="<?php echo $this->__('Telephone') ?>" value="' + m.phone + '" />'+ '<br/>'
     
                    + '<input type="hidden" name="default_shipping" value="1" />'
     
                    + '<button type="submit" title="<?php echo $this->__('Continue') ?>" class="button"><span><span><?php echo $this->__('Continue') ?></span></span></button>' + '<br/>'
     
                    + '</form>'
                    + '<?php endif; ?>';
            }

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    L'idéal serait de voir le code HTML généré au final. Car là on est un peu noyé entre le PHP, les messages traduits et pas encodés, etc...

    ERE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2000] Menu contextuel d'un objet SpreadSheet inséré dans formulaire access
    Par ddngforum dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/07/2010, 18h16
  2. Réponses: 3
    Dernier message: 11/03/2010, 09h05
  3. Photo insérée dans un formulaire.
    Par gentoo dans le forum IHM
    Réponses: 2
    Dernier message: 09/02/2007, 21h47
  4. Données formulaire A insérées dans formulaire B
    Par KEROZEN dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 11h42
  5. revalider les datas insérées dans un formulaire
    Par capouille dans le forum Access
    Réponses: 2
    Dernier message: 19/04/2006, 06h37

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