Setting up an Ajax call
Setting up an Ajax call
I'm trying to get a script to work similar to this one on the Sitepoint website:
http://articles.sitepoint.com/article/ajax-jquery
I have the following HTML:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <link href="script/jquery-datepicker/datePicker.css" rel="stylesheet" type="text/css" />
- <script type="text/javascript" src="script/jquery-1.3.2.min.js"></script>
- <script type="text/javascript" src="script/jquery-datepicker/date.js"></script>
- <script type="text/javascript" src="script/jquery-datepicker/jquery.datePicker.js"></script>
- <script type="text/javascript" src="script/jquery-datepicker/call.js"></script>
- <script type="text/javascript" src="script/jquery-datepicker/call-2.js"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- $('#bookNowCalculate').click(function() {
- $('#bookNowCost').load('frm-book-now.php');
- })
- })
- </script>
- <title>Price Calculator</title>
- <style type="text/css">
- #col-1 {
- float: left;
- width: 45%;
- }
- #col-2 {
- float: right;
- width: 150%;
- }
- /* temp */
- div {
- margin-bottom: 20px;
- }
- </style>
- </head>
- <body>
- <div id="wrapper">
- <h2 id="bookNowCost"></h2>
- <form method="post" action="#" id="frm-book-now">
- <div id="col-1">
- <div>
- <label>Full Name*</label>
- <div><input type="text" name="bookNowName" id="bookNowName" value="<?php echo $_POST['bookNowName']; ?>" /></div>
- </div>
- <div>
- <label>Telephone*</label>
- <div><input type="text" name="bookNowTel" id="bookNowTel" value="<?php echo $_POST['bookNowTel']; ?>" /></div>
- </div>
- <div>
- <label>Mobile</label>
- <div><input type="text" name="bookNowMob" id="bookNowMob" value="<?php echo $_POST['bookNowMob']; ?>" /></div>
- </div>
- <div>
- <label>Email Address*</label>
- <div><input type="text" name="bookNowEmail" id="bookNowEmail" value="<?php echo $_POST['bookNowEmail']; ?>" /></div>
- </div>
- <div>
- <label for="fromDay">Check-in Date*</label>
- <select id="fromDay" name="fromDay">
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5</option>
- <option value="6">6</option>
- <option value="7">7</option>
- <option value="8">8</option>
- <option value="9">9</option>
- <option value="10">10</option>
- <option value="11">11</option>
- <option value="12">12</option>
- <option value="13">13</option>
- <option value="14">14</option>
- <option value="15">15</option>
- <option value="16">16</option>
- <option value="17">17</option>
- <option value="18">18</option>
- <option value="19">19</option>
- <option value="20">20</option>
- <option value="21">21</option>
- <option value="22">22</option>
- <option value="23">23</option>
- <option value="24">24</option>
- <option value="25">25</option>
- <option value="26">26</option>
- <option value="27">27</option>
- <option value="28">28</option>
- <option value="29">29</option>
- <option value="30">30</option>
- <option value="31">31</option>
- </select>
- <select id="fromMonth" name="fromMonth">
- <option value="1">Jan</option>
- <option value="2">Feb</option>
- <option value="3">Mar</option>
- <option value="4">Apr</option>
- <option value="5">May</option>
- <option value="6">Jun</option>
- <option value="7">Jul</option>
- <option value="8">Aug</option>
- <option value="9">Sep</option>
- <option value="10">Oct</option>
- <option value="11">Nov</option>
- <option value="12">Dec</option>
- </select>
- <select id="fromYear" name="fromYear">
- <option value="2010">2010</option>
- <option value="2011">2011</option>
- <option value="2012">2012</option>
- <option value="2013">2013</option>
- <option value="2014">2014</option>
- <option value="2015">2015</option>
- </select>
- <a id="date-pick" href="#" class="dp-applied"><img src="image/frm-date.gif" /></a>
- </div>
- <div>
- <label for="toDay">Check-out Date*</label>
- <select id="toDay" name="toDay">
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- <option value="5">5</option>
- <option value="6">6</option>
- <option value="7">7</option>
- <option value="8">8</option>
- <option value="9">9</option>
- <option value="10">10</option>
- <option value="11">11</option>
- <option value="12">12</option>
- <option value="13">13</option>
- <option value="14">14</option>
- <option value="15">15</option>
- <option value="16">16</option>
- <option value="17">17</option>
- <option value="18">18</option>
- <option value="19">19</option>
- <option value="20">20</option>
- <option value="21">21</option>
- <option value="22">22</option>
- <option value="23">23</option>
- <option value="24">24</option>
- <option value="25">25</option>
- <option value="26">26</option>
- <option value="27">27</option>
- <option value="28">28</option>
- <option value="29">29</option>
- <option value="30">30</option>
- <option value="31">31</option>
- </select>
- <select id="toMonth" name="toMonth">
- <option value="1">Jan</option>
- <option value="2">Feb</option>
- <option value="3">Mar</option>
- <option value="4">Apr</option>
- <option value="5">May</option>
- <option value="6">Jun</option>
- <option value="7">Jul</option>
- <option value="8">Aug</option>
- <option value="9">Sep</option>
- <option value="10">Oct</option>
- <option value="11">Nov</option>
- <option value="12">Dec</option>
- </select>
- <select id="toYear" name="toYear">
- <option value="2010">2010</option>
- <option value="2011">2011</option>
- <option value="2012">2012</option>
- <option value="2013">2013</option>
- <option value="2014">2014</option>
- <option value="2015">2015</option>
- </select>
- <a id="date-pick-2" href="#" class="dp-applied"><img src="image/frm-date.gif" /></a>
- </div>
- <div>
- <label>Room Type*</label>
- <div>
- <select name="bookNowRoom">
- <option value="single" <?php if ($_POST['bookNowRoom'] == 'single') { echo ' selected="selected"'; } ?>>Single Room (£50)</option>
- <option value="double" <?php if ($_POST['bookNowRoom'] == 'double') { echo ' selected="selected"'; } ?>>Double / Twin Rooms (£65)</option>
- <option value="family" <?php if ($_POST['bookNowRoom'] == 'family') { echo ' selected="selected"'; } ?>>Family Room (£75)</option>
- </select>
- </div>
- </div>
- <div>
- <label>How Many Adults?*</label>
- <div><input type="text" name="bookNowAdult" id="bookNowAdult" value="<?php echo $_POST['bookNowAdult']; ?>" /></div>
- </div>
- <div>
- <label>How Many Children?*</label>
- <div><input type="text" name="bookNowChild" id="bookNowChild" value="<?php echo $_POST['bookNowChild']; ?>" /></div>
- </div>
- <div>
- <label>Special Requirements / Comments</label><br />
- <textarea rows="4" cols="20" name="bookNowComment" value="<?php echo $_POST['bookNowComment']; ?>"></textarea>
- </div>
- <div>
- <input type="submit" name="bookNowCalculate" id="bookNowCalculate" value="Calculate Cost" />
- </div>
- </div>
- <div id="col-2">
-
- </div>
- </form>
- </div>
- </body>
- </html>
The only bit of jQuery I'm using to execute some Ajax is this bit:
- $(document).ready(function() {
- $('#bookNowCalculate').click(function() {
- $('#bookNowCost').load('frm-book-now.php');
- })
- })
But I assume that's completely wrong as it's not working! I've read about the Ajax method on the jQuery website, should I be using this instead? I have a feeling it might be because I need to specify the data sent as POST.
I'm thinking I need to use a similar script to those on here:
http://api.jquery.com/jQuery.ajax/
But I don't know what to do with the $.ajax variable, is the output of the server-side script simply inserted into this so that I can alert it or add it to an HTML element?
Here is my PHP too if that helps:
- <?php
- // calculate cost of stay
- // declare form fields
- $bookNow = array('name' => $_POST['bookNowName'],
- 'tel' => $_POST['bookNowTel'],
- 'mobile' => $_POST['bookNowMob'],
- 'email' => $_POST['bookNowEmail'],
- 'fromDay' => $_POST['fromDay'],
- 'fromMonth' => $_POST['fromMonth'],
- 'fromYear' => $_POST['fromYear'],
- 'toDay' => $_POST['toDay'],
- 'toMonth' => $_POST['toMonth'],
- 'toYear' => $_POST['toYear'],
- 'room' => $_POST['bookNowRoom'],
- 'numAdult' => $_POST['bookNowAdult'],
- 'numChild' => $_POST['bookNowChild'],
- 'comment' => $_POST['bookNowComment']);
- // confirm room type and cost
- if ($_POST['bookNowCalculate']) {
- switch ($bookNow['room']) {
- case 'single':
- $bookNow['room'] = 50;
- break;
- case 'double':
- $bookNow['room'] = 65;
- break;
- case 'family':
- $bookNow['room'] = 75;
- break;
- }
-
- // confirm number of nights
- $dateFrom = mktime(0, 0, 0, $bookNow['fromMonth'], $bookNow['fromDay'], $bookNow['fromYear']);
- $dateTo = mktime(0, 0, 0, $bookNow['toMonth'], $bookNow['toDay'], $bookNow['toYear']);
- $numNight = ($dateTo - $dateFrom) / 86400; // 86400 == 1 day
-
- // total cost
- $cost = ($numNight * $bookNow['room']) * ($bookNow['numAdult'] + $bookNow['numChild']);
- echo '£' . $cost;
- }
- ?>
Thanks