Page 1 of 1

variabele doorgeven

Posted: Wed Mar 10, 2010 5:15 am
by Gregor
Hallo,

Is het om, en zo ja hoe, om vanuit een met Formbuilder gemaakt formulier een variabele na submit door te geven aan een pagina met daarin een {.......}, bijv. je selecteert het jaar en je wilt het jaar als getal doorgeven om o.b. daarvan een selectie te doen.

Gregor

Re: variabele doorgeven

Posted: Wed Mar 10, 2010 1:47 pm
by Calimer0
Hoi Gregor,

Je kan mbv POST of GET de variabele gebruiken in een UDT
bijv:

Code: Select all

if (!isset($_GET['year']) || $_GET['year'] == "") {
 $archiveyear=date('Y');
}
else {
 $archiveyear=$_GET['year'];
}
 $smarty->assign('archiveyear', $archiveyear);
Deze kan je in je pagina oproepen als: {$archiveyear}

Re: variabele doorgeven

Posted: Wed Mar 10, 2010 1:58 pm
by Gregor
Hoi,

Dank je wel.

Even kijken of ik het helder heb:
- je maakt een UDT aan met jouw code
- Ik vul de UDT aan met de volgende code:

Code: Select all

{* Select your news_start_date formatted as yyyy-mm-dd *}
{assign var='news_start_period' value=$archiveyear.'-01-01'}

{* Select your news_end_date formatted  as yyyy-mm-dd *}
{assign var='news_end_period' value=$archiveyear.'-12-31'}
{news category="logboek" summarytemplate="summaryperiodtemplate" detailtemplate="detailtemplate" }
en de UDT plaats ik dan in de pagina.

Eens?

Gregor

Re: variabele doorgeven

Posted: Wed Mar 10, 2010 2:41 pm
by Calimer0
Hoi Gregor,

Ik dacht dat je {news} niet kan gebruiken in een UDT
En ik zou het zo doen:

Code: Select all

 $startperiod="{$archiveyear}/01/01";
 $endperiod="{$archiveyear}/12/31";
 
 $smarty->assign('archiveyear', $archiveyear);
 $smarty->assign('startperiod', $startperiod);
 $smarty->assign('endperiod', $endperiod);
De UDT plaats je dan idd in die pagina

Re: variabele doorgeven

Posted: Wed Mar 10, 2010 5:04 pm
by Gregor
Hoi,

Ik denk niet dat het helemaal goed gaat. In de UDT archiveyear staat:

Code: Select all

if (!isset($_GET['year']) || $_GET['year'] == "") {
 $archiveyear=date('Y');
}
else {
 $archiveyear=$_GET['year'];
}
 $smarty->assign('archiveyear', $archiveyear);
 
$news_start_period="{$archiveyear}/01/01";
$news_end_period="{$archiveyear}/12/31";
 
$smarty->assign('archiveyear', $archiveyear);
$smarty->assign('news_start_period', $news_start_period);
$smarty->assign('news_end_period', $news_end_period);
Dan heb ik een pagina waarin ik het formulier aanroep en daarin heb ik aangegeven:

Map field "Jaar" to form submission variable:

Include field in Submission
en ik heb een POST van het resultaat er in gezet.
39   Jaar   Pulldown   true   5 options     down   Edit   Delete
41 archiveyear *Submit to an arbitrary form action . POST up   Edit Delete
De link is:
http://www.uisge-beatha.eu/Logboek/lbjaar.html

Dan heb ik een pagina waarin ik de udt heb geplaatst, alleen wordt die volgens mij niet aangeroepen:
Sorry! Er is een fout opgetreden tijdens de formulierverwerking.
Ik heb ook geprobeerd om de udt {archiveyear} in dezelfde pagina te plaatsen als het formulier. Dat helpt niet.

Ik zie mogelijk iets over het hoofd, maar ik zou nu even niet weten wat/hoe. Suggestie?

Re: variabele doorgeven

Posted: Thu Mar 11, 2010 7:52 am
by Gregor
Ik heb de volgende code in de submissiopn template gezet:

Code: Select all

{$archiveyear} {news category="logboek" summarytemplate="summaryperiodtemplate" detailtemplate="_dflt" }
en krijg ook dan de melding:
Sorry! Er is een fout opgetreden tijdens de formulierverwerking.
:-\

Re: variabele doorgeven

Posted: Thu Mar 11, 2010 7:58 am
by Calimer0
Hoi Gregor,

Probeer eens dit in je archiveyear UDT te zetten:

Code: Select all

  <form id="selectyear" method="get" action="http://www.uisge-beatha.eu/Logboek/lbjaar.html" enctype="multipart/form-data"> 
    <div class="formbuilderform"> 
      <div class="required">

        <label for="year">
          Jaar*
        </label>
        <select id="year" name="year">
          <option value="" selected="selected"> 
            Selecteer een jaar: 
          </option>
          <option value="2006">
            2006
          </option>
          <option value="2007">

            2007
          </option>
          <option value="2008">
            2008
          </option>
          <option value="2009">
            2009
          </option>
          <option value="2010">
            2010
          </option>

        </select> 
      </div> 
      <div class="submit">
        <input value="Verstuur" type="submit" /> 
      </div> 
    </div> 
  </form> 


Re: variabele doorgeven

Posted: Thu Mar 11, 2010 8:02 am
by Gregor
Hoi,
Dank voor je reactie. AL verschillende dingen geprobeerd en het gevoel een beetje vast te zitten.

Als ik dit in de udt zet, dan krijg ik:
   * Invalid code entered.
   * Parse error: syntax error, unexpected '<' in /home/efacti/public_html/uisge-beatha.eu/admin/edituserplugin.php(108) : eval()'d code on line 1
edit: Ik heb in de submission template staan:

Code: Select all

{archiveyear} 
{news category="logboek" summarytemplate="summaryperiodtemplate" detailtemplate="_dflt" }

Re: variabele doorgeven

Posted: Thu Mar 11, 2010 8:09 am
by Calimer0
Foutje van mij,
Je moet alles echo'en..
dus:

Code: Select all

echo '<form id="selectyear" method="get" action="http://www.uisge-beatha.eu/Logboek/lbjaar.html" enctype="multipart/form-data">'; 
etc..
Wat je ook kan doen:
Je moet dan alleen bij archief-3 de naam van jou pagina invullen (lbjaar?)

Code: Select all

//Execute some smarty code to make the archive link
global $gCms;
$smarty = &$gCms->GetSmarty();
$smarty_data = "{cms_selflink href='archief-3'}"; //this is the archive link
$smarty->_compile_source('temporary template', $smarty_data, $_compiled );
@ob_start();
$smarty->_eval('?>' . $_compiled);
$_contents = @ob_get_contents();
@ob_end_clean();
$archivelink = $_contents;

//Set the first year of archives:
$firstyear=2005;

//Set some variables
$thisyear=date('Y');
$i=$firstyear;

//HTML before the loop
echo "<ul>";

//Loop through the years to this year
while ($i <= $thisyear) {
 echo "<li>"; //HTML at beginning of iteration
 echo "<a title=\"News Archive {$i}\" href=\"{$archivelink}?year={$i}\">{$i}</a>";
 echo "</li>"; //HTML at end of iteration
 ++$i;
}

//HTML after the loop
echo "</ul>";

Re: variabele doorgeven

Posted: Thu Mar 11, 2010 8:16 am
by Gregor
Ik heb de code in de archiveyear UDT gezet en lbjaar erin gezet.

Samengevat tot nu toe, ik heb:
- in de pagina staat {FormBuilder form='lbjaar'}
- een form aangemaakt met POST als submit-waarde
- in het submission form staan

Code: Select all

{archiveyear} 
{news category="logboek" summarytemplate="summaryperiodtemplate" detailtemplate="_dflt" }
- in de UDT de aangereikte code staan

Melding die na het selecteren van een jaar optreedt, is dat er een fout is in de verwerking van het formulier. Login code via PM .....