Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Get surveyid in session.

More
11 years 9 months ago #115929 by Marksom
Hello team Limesurvey.

At the end of each quiz, I have a script that does some checks on a database.

I need to know how to get the surveyid through a session in this script, something like: $ surveyid = $ _ SESSION .

I have not figured out how to get the surveyid through a session.

Thank you, now.
The topic has been locked.
More
11 years 9 months ago #115938 by DenisChenu
Replied by DenisChenu on topic Get surveyid in session.
Hi,

Better/easiest solution is
- Use {SAVEDID} in the endurl : myscript.php?srid={SAVEDID}
- Use {SAVEDID} in a ajaxurl
- Use afterSurveyComplete plugin event and do your own plugin (surely the better solution).

Else : you have to start the $_SESSION before your script, with the same sessionname ....

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
The following user(s) said Thank You: Marksom
The topic has been locked.
More
11 years 8 months ago #116011 by Marksom
Replied by Marksom on topic Get surveyid in session.
Thank you, thank you Denis.
I'll use url end, but I will try to implement a plugin
bye. :)
The topic has been locked.
More
11 years 7 months ago - 11 years 7 months ago #117686 by Marksom
Replied by Marksom on topic Get surveyid in session.
Hello.
I tried to create the plugin, it active, but does not send the id.
Am I doing something wrong?
Code:
<?php class GetId extends PluginBase { protected $storage = 'DbStorage'; static protected $name = 'GetId'; static protected $description = 'Get id survey'; public function __construct(PluginManager $manager, $id) { parent::__construct($manager, $id); $this->subscribe('beforeSurveySettings'); } public function beforeSurveySettings() { if (!isset($_SESSION)) session_start(); $_SESSION['myid']=$_SESSION['survey_'.$surveyid]['scid']; } } ?>
Last edit: 11 years 7 months ago by Marksom. Reason: Error publication
The topic has been locked.
More
11 years 7 months ago #117728 by Marksom
Replied by Marksom on topic Get surveyid in session.
I tried that, but it did not work.
I need to create a plugin that pass the id in the redirect.
My version is 2.05+.
Any solution, please.
Thanks.
Code:
class GetId extends PluginBase { protected $storage = 'DbStorage'; static protected $name = 'GetId'; static protected $description = 'Get id survey'; public function __construct(PluginManager $manager, $id) { parent::__construct($manager, $id); $this->subscribe('afterSurveyComplete'); } public function afterSurveyComplete() { if (!isset($_SESSION)) session_start(); $_SESSION['myid']=$event->get('responseId'); } }
The topic has been locked.
More
11 years 7 months ago #117821 by DenisChenu
Replied by DenisChenu on topic Get surveyid in session.
Hi,

Think using Yii is better (session name etc ...)

Try:
Code:
public function afterSurveyComplete() { Yii::app()->session['myOwnSessionId']=$event->get('responseId'); }

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
The topic has been locked.
More
11 years 6 months ago - 11 years 6 months ago #118001 by Marksom
Replied by Marksom on topic Get surveyid in session.
Hi Denis.
I'm sorry, but I could not with Yii.
Edited a plugin Demo (ShowResponse) and it worked.
It was so for those who wish ...
Code:
class GetId extends PluginBase { //protected $storage = 'DbStorage'; static protected $description = 'Get id survey'; static protected $name = 'GetId'; public function __construct(PluginManager $manager, $id) { parent::__construct($manager, $id); /** * Here you should handle subscribing to the events your plugin will handle */ $this->subscribe('afterSurveyComplete', 'getmyId'); } /* * Below are the actual methods that handle events */ public function getmyId() { $event = $this->getEvent(); $surveyId = $event->get('surveyId'); $responseId = $event->get('responseId'); if (!isset($_SESSION)) session_start(); $_SESSION['myId'] = $responseId; } }

Should create my own, but I'm not good at it.
I just want to see it working.
Thanks!
Last edit: 11 years 6 months ago by Marksom. Reason: text error
The topic has been locked.
More
11 years 3 months ago #122476 by Mazi
Replied by Mazi on topic Get surveyid in session.
Thanks for sharing your solution. Since e have update the limesurvey.org website recently, maybe you can upload your plugin there: www.limesurvey.org/en/community-services...ons/76-survey-taking
Thanks!

BTW, did you test if this also works with the latest Limesurvey 2.06 version?

Best regards/Beste Grüße,
Dr. Marcel Minke
survey-consulting.com
offlinesurveys.com
Feel free to contact me by email for professional LimeSurvey support!
The topic has been locked.
Moderators: tpartner, holch

Lime-years ahead

Online-surveys for every purse and purpose