1

Is there a way to read data from a CartoDB infowindow and write it, e.g. into a form?

For example: In a city plan with parcels, the user clicks on a parcel and the infowindow opens with information on this parcel. Now I think about a “Fill in” button that allows writing the attributes of the parcel selected into a form.

Any hints?

1 Answer 1

1

I've prepared an example for you. You can check it here (and full page)

The "trick" is to capture the infowindow's data. Infowindow is a Backbone Model, so I worked with its bind method.

.done(function(vis, layers) {
      lyr = layers[1];
      lyr.infowindow.bind('change', function() {
        if ((lyr.infowindow.attributes.content.fields !== undefined) && (lyr.infowindow.attributes.content.fields[4] !== undefined)) {
          country = lyr.infowindow.attributes.content.fields[4].value;
          pop2005 = lyr.infowindow.attributes.content.fields[7].value;
          document.getElementById("inpCountry").value = country;
          document.getElementById("inpPop").value = pop2005;
        }
      });
    })

Also, in this example, I'm filling a form with data, as you requested in your post.

1
  • Great example! Muchas gracias!
    – Flo
    Mar 12, 2015 at 15:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.