[OpenLayers-Users] Feature attribute editing/updating
Jean-François Gigand
jf at geonef.fr
Fri Aug 19 10:29:02 EDT 2011
Hi,
I'm not sure to understand what you expect upon updateAttributes() :
- update feature style (if it depends on attributes):
call feature.layer.drawFeature(feature)
- save the attributes back to PostGIS:
for that you need OpenLayers.Strategy.Save
(with OpenLayers.Protocol.WFS), or maybe you do it with custom code/protocol
- unselect the feature (and close the popup)
just call selcontrol.unselect(feature)
...
What do you need to do exactly?
Note: the example you mentioned seems a bit old (2.6 or 2.7). It may
be all right but be aware of it!
Jean-François Gigand - Geonef
Paris, France - http://geonef.fr/
2011/8/19 killerz <eoinskilleen at gmail.com>:
> Hi,
>
> I hoping that somebody here will be able to help me out as i have spent days
> trying to figure this out and its a vital part of an application im
> developing for my university dissertation. I am struggling to update
> attributes values via a popup box. My data is stored in PostGIS with a blank
> text column which i want to be able to add text to as I draw a new feature.
>
> I have been trying to work from this example:
> http://gis.ibbeck.de/ginfo/apps/OLExamples/OL26/examples/styles_unique_with_group.html
>
> I have the popup box with the current value displaying in the text input(I
> entered random values via PostGIS to test it) and an update button but
> nothing happens. I not sure if the error is in the update button or in the
> updateattributes function. the example has 2 fields to update so my mistake
> maybe altering it to 1 field but I cant figure it out. I have draw, modify
> geometry, delete and save working with the same layer so the data is not the
> issue. The relevant part of the code is below:
>
>
> function createPopup(feature) {
>
> var attInfo = feature.attributes['info'] ? feature.attributes['info'] : "no
> info";
>
>
> feature.popup = new OpenLayers.Popup.FramedCloud("pop",
> feature.geometry.getBounds().getCenterLonLat(),
> null,
> '<div>Popup<p> <input id="attInfo_' + feature.id + '"
> type="text" style="width:100%" value="' + attInfo +'"> <p><input
> id="attBtn_'
>
> + feature.id + '" type="button" value="Update" onclick="updateAttributes(\''
> + feature.id + '\');"></div>',
> null,
> true,
> function() { selcontrol.unselectAll(); }
> );
>
>
>
> map.addPopup(feature.popup);
> }
> function destroyPopup(feature) {
> feature.popup.destroy();
> feature.popup = null;
> }
> var selcontrol = new OpenLayers.Control.SelectFeature(points, {
> onSelect: createPopup,
> onUnselect: destroyPopup
> });
>
> function updateAttributes(fid)
> {
> feature.attributes.info = document.getElementById("attInfo_" + fid).value;
>
> {
>
>
> for(var key in feature.attributes)
> { if(key != "info")
> {
>
> var data = document.getElementById('att' + key + '_' + fid).value;
> if(feature.attributes[key] != data)
> feature.attributes[key] = data; }
> }
> }
> }
>
>
>
> Any help would be appreciated. Information on this seems to be lacking
> online any examples that show attribute editing also include many other
> complex element making them difficult to examine. Perhaps a simple example
> would be useful.
>
> Thanks in advance!
>
> Eoin
>
>
>
> --
> View this message in context: http://osgeo-org.1803224.n2.nabble.com/Feature-attribute-editing-updating-tp6703055p6703055.html
> Sent from the OpenLayers Users mailing list archive at Nabble.com.
> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>
More information about the Users
mailing list