The survey builder performs three functions: it shows you the stats on sent surveys, lets you send unsent surveys, and lets you build your new surveys.
Surveys in this system are simple: one question and six possible answers.
Each answer will be assigned a number of 1 to 6.
We've got subscribers but we need to send them what they've subscribed to. This recipe will set up our survey builder. We'll also build a home page as part of our builder, where we can choose to send surveys or view results.
Services/
folder to your website.survey-builder.php
. The file will have the following content:<?php include("config.php"); include("pdo.class.php"); include 'Services/Twilio.php'; switch($_GET['action'] ){ case 'save': $fields = array('question','answer1','answer2','answer3','answer4','answer5','answer6','status'), $pfields = array(); foreach( $fields as $k){ $v = $_POST[$k]; $pfields[] = "{$k} = '{$v}'"; } $sql = "INSERT INTO survey SET ".implode(",",$pfields); $pdo = Db::singleton(); $pdo->exec($sql); $qid = $pdo->lastInsertId(); if( isset($qid) && !empty($qid) ){ ?> <a href="send-survey.php?qid=<?=$qid?>">Send survey</a> or <a href="survey-builder.php">Return to home</a> <?php } case 'build': include("buildform.php"); break; default: include("home.php"); break; } ?>
buldform.php
(bearing the following content) to your website.<h2>Prepare your survey</h2> <form method="POST" action="survey-builder.php?action=save"> <table> <tr> <td>Question</td> <td><input type="text" name="question" /></td> </tr> <?php for($i = 1;$i<= 6;$i++){ ?> <tr> <td>Answer <?=$i?></td> <td><input type="text" name="answer<?=$i?>" /></td> </tr> <?php } ?> </table> <button type="submit">Save</button> </form>
home.php
(bearing the following content) to your website:<a href="survey-builder.php?action=build">Add new survey</a><hr /> <h2>Pending Surveys</h2> <table width=100%> <?php $res = $pdo->query("SELECT * FROM survey WHERE status=0"); while( $row = $res->fetch() ){ ?> <tr> <td><?=$row['question']?></td> <td><a href="send-survey.php?qid=<?=$row['ID']?>">Send</a></td> </tr> <?php } ?> </table> <br />
The first part of this file displays surveys that have not been sent yet. The second part displays surveys that have been sent, and a link to view responses.
<h2>Sent Surveys</h2> <table width=100%> <?php $res = $pdo->query("SELECT * FROM survey WHERE status=1"); while( $row = $res->fetch() ){ ?> <tr> <td><?=$row['question']?></td> <td><a href="view-survey.php?qid=<?=$row['ID']?>">View Responses</a></td> </tr> <?php } ?> </table>
In steps 1 and 2, we downloaded and installed the Twilio Helper Library for PHP, which is at the heart of your Twilio-powered apps.
Finally, in steps 3, 4, and 5, we created survey-builder.php
, buildform.php
, and home.php
respectively.
When you first load the survey builder, you will get a list of surveys; you can view the stats or send pending surveys. Once you choose to build a new survey, you will get a form that lets you build the survey with a list of answers.
Once you save the survey, you can choose to send it right away or return to the index page.
On the index of surveys, we display unsent surveys and sent surveys.
Unsent surveys will have a link that you can use to send them, whereas sent surveys will have a link to view the results. We'll cover both of these capabilities in upcoming recipes in this chapter.