I'm following the guidance (https://surveyjs.io/Survey/Builder/) to embed a survey in my page.
On the site mentioned above> embed survey >
- Use jQuery
- For bootstrap framework
- Show Survey on the page.
I have a Laravel app, and the page renders this source code:
<!DOCTYPE html>
<html lang="en">
<head>
<title>The Survey Page </title>
<!-- Your platform (jquery) scripts. -->
<link href="https://surveyjs.azureedge.net/1.0.28/survey.css" type="text/css" rel="stylesheet" />
<script src="https://surveyjs.azureedge.net/1.0.28/survey.jquery.min.js"></script>
</head>
<body>
<div id="surveyContainer"></div>
<script> alert("This is the survey blade right here right now"); </script>
<script>
var surveyJSON = {pages:[{name:"page1",elements:[{type:"paneldynamic",name:"question2",templateElements:[{type:"radiogroup",name:"question3",choices:["item1","item2","item3"]},{type:"text",name:"question4"}]},{type:"paneldynamic",name:"question1"}]}]}
function sendDataToServer(survey) {
//send Ajax request to your web server later. Meantime...
alert("The results are:" + JSON.stringify(survey.data));
}
var survey = new Survey.Model(surveyJSON);
$("#surveyContainer").Survey({
model: survey,
onComplete: sendDataToServer
});
</script>
</body>
</html>
- So, I get the alert and a blank page.
- the external script references are correctly formatted
- the script is the last thing on the page (sequence wise)
In the console, I get this:
survey.jquery.min.js:11 Uncaught TypeError: Cannot read property 'fn' of undefined
at Object.<anonymous> (survey.jquery.min.js:11)
at t (survey.jquery.min.js:6)
at survey.jquery.min.js:6
at survey.jquery.min.js:6
at survey.jquery.min.js:6
at survey.jquery.min.js:6
(anonymous) @ survey.jquery.min.js:11
t @ survey.jquery.min.js:6
(anonymous) @ survey.jquery.min.js:6
(anonymous) @ survey.jquery.min.js:6
(anonymous) @ survey.jquery.min.js:6
(anonymous) @ survey.jquery.min.js:6
showSurvey:23 Uncaught ReferenceError: Survey is not defined
at showSurvey:23
showSurvey
is my controller method.
public function showSurvey()
{
return view ('surveys.survey'); //the laravel blade.. although it's just HTML as per the tutorial example
}
What am I doing wrong?