Embedded surveyJS Issue

3k views Asked by At

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?

1

There are 1 answers

2
Andrew Telnov On

Plese replace the following line:

  <!-- Your platform (jquery) scripts. -->

with

  <script src="https://unpkg.com/jquery"></script>