RV: [Chameleon] Custom Widget, read value of input text in Draw Publish

Ines mleonsoft at yahoo.com.ar
Wed Jan 31 17:18:42 EST 2007


Hello, I tried to read the variable but the widget don't take the value of
the input text.
I have just one input text box and the button of the wiget.
First, I write some text in te input text box. Example: hello
Second, I click the buttom of the widget, but the widget don´t read the
value of my input text box (hello). The name of my input is 'especie'(<input
type='text' name='especie'>).

I use isVarSet and getVar, but it don´t works. I think the widget don´t take
the name of the input text ('especie') like a variable. I defined 'especie'
en the class UUW: var $especie;

I have defined the input text in DrawPublish() and I'm trying to read the
variable in the parseURL()

function DrawPublish()
    {
        // init vars
        $szReturn = "<font color='#000000' size='2' face='Arial, Helvetica,
sans-serif'>Search by scientific name </font><input type='text'
name='especie'>        ";
        // execute parent
        $szReturn .= parent::DrawPublish();
        // return
        return $szReturn;
    }
---------------------------------------------------

function  ParseURL()
    {
        // execute parent function
        parent::ParseURL();

if ( $this->isVarSet( "NAV_CMD" ) &&
                            $this->getVar( "NAV_CMD" ) == 'UUW' )
{
	$this->x = -85;
	$this->y = 13;
	if ( $this->mszCoords == 'aa')
	{
		if ($this->isVarSet('especie') == 0) -------------->RETURN 0 EVER
		{
			$this->lb = "no";
		}
		else
		{
			$this->lb = $this->getVar('especie');
		}
		$poLayer = $this->moMapObject->oMap->getLayerByName('pointlatlon');
		$poLayer->set("status", MS_ON);
		$pt = ms_newPointObj();
   		$ln = ms_newLineObj();
		$shp = ms_newShapeObj(MS_SHAPE_POINT);
		$shp->set("text", $this->lb);-------------------------> CONTENT= "no"
   		$pt->setXY($this->x,$this->y);
    	$ln->add($pt);
    	$shp->add($ln);
    	$poLayer->addFeature($shp);


	}


}

        // return success
        return true;
    }

Do I have to do something more for take the value of the variable?
Thank again
Ines


-----Mensaje original-----
De: Julien-Samuel Lacroix [mailto:jlacroix at mapgears.com]
Enviado el: martes, 09 de enero de 2007 11:37
Para: Ines
CC: chameleon at lists.maptools.org
Asunto: Re: RV: [Chameleon] Custom Widget, read value of input text in
Draw Publish


Hi,
To read any form variable anywhere in a widget use this:
$this->lb = $this->getVar('especie');

There's also the function $this->isVarSet('especie') that is used to
know if a variable is set or not in the form variables.

Julien


Ines wrote:
> Thanks again, it works with: $shp->set('text', 'My Place');
> I'll make the tutorial to add it to the wiki.
>
>
> I need to solve another thing now. I created an "input text" in the
function
> "Draw publish". And I need to know how to take the value from that input
> text. I tried  with the POST method in  "ParseURL" function but it don´t
> read the value of the input text. Do you know How can I read the value of
> the input text in the widget? I need to take that value in the Parse URL
> function. I need to write something in the input text, and when I click
the
> widget button, take that value in Parse URL to use it like a variable.
>
> function DrawPublish()
>     {
>         // init vars
>         $szReturn = "<font color='#000000' size='2' face='Arial,
Helvetica,
> sans-serif'>Search by scientific name </font><input type='text'
> name='especie'>        ";
>
>         // execute parent
>         $szReturn .= parent::DrawPublish();
>
>         // return
>         return $szReturn;
>
>     // end DrawPublish() function
>     }
>
> In Parse URL I think it could be:
>
> $this->lb=$_POST[especie];   //---------------> But it don't work, POST
> don't read the value of "especie" input.
>
> $poLayer = $this->moMapObject->oMap->getLayerByName('pointlatlon');
> $poLayer->set("status", MS_ON);
> $pt = ms_newPointObj();
> $ln = ms_newLineObj();
> $shp = ms_newShapeObj(MS_SHAPE_POINT);
> $shp->set("text", $this->lb);
> $pt->setXY($this->x,$this->y);
> $ln->add($pt);
> $shp->add($ln);
> $poLayer->addFeature($shp);
>
>
> Thank you very much
> Ines
>
>
>
>
>
> Hi,
> Ines wrote:
>
>>Hello, thank you very much!!! I can´t believe it. I can see the point in
>
> the
>
>>map!! my widget is working very very well now. It is really a success.
>
> Again
>
>>thank you. I want to collaborate with chemeleon making a little manual to
>>make the points dynamic with a widget if you want to publish it like an
>>example of "Draw point layer dynamic in the map with widgets". What do you
>>think?
>
>
> Great idea! You can probably easily add that to the wiki:
> http://chameleon-tiki.maptools.org/tiki-index.php
>
>
>>Now I need to ask you, I need to show a text with the point in the widget.
>>Like:
>>TEXT "My Place"     in the point layer of the file.map.
>
>
> Does $shp->set('text', 'My Place'); works?
>
> Julien
> --
> Julien-Samuel Lacroix
> Mapgears
> http://www.mapgears.com/
>
> _______________________________________________
> Chameleon mailing list
> Chameleon at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/chameleon

--
Julien-Samuel Lacroix
Mapgears
http://www.mapgears.com/



More information about the Chameleon mailing list