AFVA | Mitchell Posted December 18, 2009 Report Share Posted December 18, 2009 I am currently working on a passenger flight booking feature. How can I make a search which has a function to search by both departure and arrival airports, and not just one like the one in schedule search. Pages(under construction): Search: http://www.vhmrw.site90.com/index.php/booking Results of Search: http://www.vhmrw.site90.com/index.php/booking/results Confirmation: http://www.vhmrw.site90.com/index.php/booking/confirm Also I need to know how to send values (like the amount of adults/children) a user added to the confirm and results page. Thanks, Mitchell Williamson Quote Link to comment Share on other sites More sharing options...
Administrators Nabeel Posted December 18, 2009 Administrators Report Share Posted December 18, 2009 For the adult/children, that can be passed to the next page, and you can do some random logic with the price. For the day of arrival/departure, you have to determine what day of week it is, and search by that, and then arrival/departure. But thanks for reminding me, I was starting to write a multi-search function, which would search on whatever parameters you pass to it: <?php // Returns KJFK flights on sundays $data = array('arricao'=>'KJFK', 'dayofweek'=>0); $results = SchedulesData::getMultiSearch($data); // return VMS flights from KJFK, departing during 18:00-59 hours (% is SQL wildcard) $data = array('depicao'=>'KJFK', 'code'=>'VMS', 'deptime'=>'18:%'); $results = SchedulesData::getMultiSearch($data); This would facilitate any custom searches or modules which want to return specific data, and you can pass in any column to search on which is in that table. I added a ticket for it: http://bugs.phpvms.net/ticket/110 I will probably write a similar function for PIREPS. Quote Link to comment Share on other sites More sharing options...
Administrators Nabeel Posted December 18, 2009 Administrators Report Share Posted December 18, 2009 As of next beta: http://docs.phpvms.net/_media/development/searching_and_retriving_schedules Quote Link to comment Share on other sites More sharing options...
AFVA | Mitchell Posted December 21, 2009 Author Report Share Posted December 21, 2009 How can I exactly implement the code? booking_form.tpl(yes thats 175 lines): <h1>Book a Flight</h1> <form name="booking_search" id="booking_search" action="<?php echo SITE_URL?>/index.php/booking/search"> <br> <table> <thead> <th><p><b>Departing From: </b></p></th><th><p><b>Arriving At:</b></p></th> <thead> <tbody> <td> <select id="depicao" name="depicao"> <option value="">--ORIGIN</option> <?php if(!$depairports) $depairports = array(); foreach($depairports as $airport) { echo '<option value="'.$airport->icao.'">'.$airport->icao .' ('.$airport->name.')</option>'; } ?> </select> </td> <td> <select id="arricao" name="arricao"> <option value="">--DESTINATION</option> <?php if(!$depairports) $depairports = array(); foreach($depairports as $airport) { echo '<option value="'.$airport->icao.'">'.$airport->icao .' ('.$airport->name.')</option>'; } ?> </select> </td> </thead> </table> <hr> <table border="1"> <thead> <th><b>Adults (13+)</b></th><th><b>Children (2-12)</b></th><th><b><b><a href="#" onclick="showhide('policy'); return(false);">Under 2 Policy</a></b></th> </thead> <tbody> <td> <center> <select id="adults" name="adults"> <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> </select> </center> </td> <td> <center> <select name="children" id="children"> <option value="0">0</option> <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> </select> </center> </td> <td> <div style="display: none;" id="policy"> <p>When flying on our airline with a baby under the age of two, we ask you bring a Baby Car Seat.<br> Please Contact Booking Staff at admin@vhmrw.site90.com for Further Information. </p> </div> </td> </tbody> </table> <hr> <table> <thead> <th><p><b>Departure Date:</b></p></th><th><p><b>Arrival Date(Only If Return Flight):</b></p></th> </thead> <tbody> <td> <select id="depmonth" name="depmonth"> <option value="dec09">December 2009</option> <option value="jan10">January 2010</option> <option value="feb10">Febuary 2010</option> <option value="mar10">March 2010</option> </select> <select id="depday" name="depday"> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</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> </td> <td> <select id="arrmonth" name="arrmonth"> <option value="dec09">December 2009</option> <option value="jan10">January 2010</option> <option value="feb10">Febuary 2010</option> <option value="mar10">March 2010</option> </select> <select id="arrday" name="arrday"> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</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> </td> </tbody> </table> <hr> <input type="submit" name="submit" value="GO!"> </form> Booking.php: <?php class Booking extends CodonModule { public function index() { $depapts = OperationsData::GetAllAirports(); Template::Set('depairports', $depapts); Template::Show('booking_form.tpl'); } public function search() { $params = array( 's.depicao' => array ('$this->post->depicao'), 's.arricao' => array ('$this->post->arricao'), 's.enabled' => 1, ); $schedules = SchedulesData::findSchedules($params); Template::Set('allresults', $schedules); Template::Show('booking_results.tpl'); } public function results() { Template::Set('allresults', $schedules); Template::Show('booking_results.tpl'); } public function confirm() { Template::Show('booking_confirm.tpl'); } } ?> When I search it gives me this error: Warning: Invalid argument supplied for foreach() in /home/a5059087/public_html/core/templates/booking_results.tpl on line 13 Can anyone help me? Quote Link to comment Share on other sites More sharing options...
Administrators Nabeel Posted December 21, 2009 Administrators Report Share Posted December 21, 2009 Hey $params = array( 's.depicao' => array ('$this->post->depicao'), 's.arricao' => array ('$this->post->arricao'), 's.enabled' => 1, ); Should be: $params = array( 's.depicao' => $this->post->depicao, 's.arricao' => $this->post->arricao, 's.enabled' => 1, ); No need to assign them to arrays. And putting variables in single quotes doesn't parse the variable, it will literally put $value Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.