Let me start by saying that I am not an expert in any one type of code, instead, however, I tend to be okay at piecing things together and making it work! My latest issue is perhaps a little too technical for my know how. Here is what I am trying to accomplish:
I am using an HTML page with a form to grab a unique identifier from the user. Then PHP (to grab database information) and JSON (to parse that information into a format for use in HTML). Finally I am using the jquery plugin “Populate” to send this information into the desired form fields on the HTML page (a separate form from the one getting the unique identifier).
I have a HTML page with 2 forms on it. The first form:
<form name="form_reservation" id="form-reservation">
<div style="padding:10px 20px 10px 10px;">
<label for="reservation-id">Reservation ID</label>
<input name="reservationid" class="reservationid" style="width:120px !important"/>
<div class="json-sample" id="json-simple-sample"> </div>
<input type="submit" class="button" value="Search Reservation" style="width:150px !important; margin:10px 0px 0px 5px;"/>
<input type="button" class="button" value="Clear" style="width:150px !important; margin:10px 0px 0px 5px;" onclick="resetForms('reservation')" />
</div>
</form>
The Javascript to grab this submit is now:
<script type="text/javascript">
$(document).ready(function(){
resetForms('reservation');
$('#form-reservation').submit(function(event){
event.preventDefault(); //the page will no longer refresh on form submit.
var resCheck = $(this).find('input[class="reservationid"]').val(); //now we have the reservation ID, let's perform our check.
$.ajax({
url: 'inc/searchres.php',
type: 'POST', //default is GET, you are using POST(*SEE: [1])
data: 'resid='+resCheck,
success: function(data){ //data is all the info being returned from the php file
var jsonData = $.parseJSON(data); //parse returned JSON data so we can use it like data.name, data.whatever
$('#json-reservation').populate({personal_first_name:jsonData['element_1_1'],personal_last_name:jsonData['element_1_2'],personal_phone_1:jsonData['element_7'],personal_email:jsonData['element_2'],reservation_status:jsonData['ADD THIS CELL'],reservation_date:jsonData['element_3'],reservation_time:jsonData['element_4'],reservation_party:jsonData['element_5'],reservation_special_request:jsonData['element_6'],reservation_using_coupon:jsonData['element_9'],reservation_coupon_code:jsonData['element_10']});
}
});
});
});
</script>
The purpose of the previous form is to ask the user for a unique identifier. Once the user clicks “Search Reservation” this unique identifier is used to search a database to see if it exists… This is an external php file called searchres.php (thought I realize this php file is not properly linked to the form, as I couldnt figure out how to do it so the page would not reload or change links):
<?php
include('connect-searchres.php');
$term = $_POST['resid'];
$sql = mysql_query("SELECT * FROM ap_form_8 WHERE element_1_1 = '$term'"); //select first name (element_1_1) from form #8
if ($row = mysql_fetch_array($sql)){ //if reservation number exists
if ($row['element_10'] != 'Cancelled'){ //if reservation has not already been cancelled
if (strtotime($row['element_3']) >= strtotime(date("Y-m-d"))){ //if reservation has not already passed date
echo json_encode($row);
}
else //Reservation already passed (old reservation)
{
echo 'passed';
}
}
else //Reservation already cancelled
{
echo 'cancelled';
}
}
else //Reservation not found
{
echo 'not found';
}
mysql_close();
?>
So to this point, the user has entered their unique number and the php file has searched the database for it. We have also converted our sql query into JSON format. I now need to populate the other form from the HTML page with the data that it has received. The other form looks like (sorry this is a big one):
<form name="json_reservation" id="json-reservation" action="results.php" method="post" target="_blank" style="margin-top:15px">
<fieldset>
<legend>Personal Information</legend>
<ul class="controls">
<li>
<label for="first-name">First Name</label>
<input name="personal_first_name" id="personal-first-name" type="text" class="text" maxlength="" value="" disabled readonly/>
</li>
<li>
<label for="last-name">Last Name</label>
<input name="personal_last_name" id="personal-last-name" type="text" class="text" maxlength="" value="" disabled readonly/>
</li>
<li>
<label for="personal[country]">Phone</label>
<input name="personal_phone_1" id="personal-phone-1" type="text" class="text" style="width:110px !important" maxlength="" disabled readonly/>
</li>
<li>
<label for="email">Email</label>
<input name="personal_email" id="personal-email" type="text" class="text" maxlength="" value="" disabled readonly/>
</li>
</ul>
</fieldset>
<fieldset>
<legend>Reservation Information</legend>
<ul class="controls">
<li>
<label for="status">Reservation Status</label>
<input name="reservation_status" id="reservation-status" type="text" class="text" style="width:110px !important" maxlength="" value="" disabled readonly/>
</li>
<li>
<label for="date">Date</label>
<input name="reservation_date" id="reservation-date" type="text" class="text" style="width:110px !important" maxlength="" value="" disabled readonly/>
</li>
<li>
<label for="time">Time</label>
<input name="reservation_time" id="reservation-time" type="text" class="text" style="width:110px !important" maxlength="" value="" disabled readonly/>
</li>
<li>
<label for="party">Number in Party</label>
<input name="reservation_party" id="reservation-party" type="text" class="text" style="width:110px !important" maxlength="" value="" disabled readonly/>
</li>
<li>
<label for="specialrequest">Requests</label>
<textarea name="reservation_special_request" id="reservation-special-request" rows="3" wrap="virtual" class="specialrequest" style="width:60% !important" disabled readonly/></textarea>
</li>
<li>
<label for="coupon">Using Coupon/Promotion</label>
<input name="reservation_using_coupon" id="reservation-using-coupon" type="text" class="text" style="width:110px !important" value="" disabled readonly/> # <input name="reservation_coupon_code" id="reservation-coupon-code" type="text" class="text" style="width:110px !important" maxlength="" value="" disabled readonly/>
</li>
</ul>
</fieldset>
</form>
So anyhow, this is where I am at, and at this point I know there are A LOT of issues with not only my code, but my method. Because of that, any tips would be greatly appreciated as I have searched high and low at this point.
Another point to mention, is that I really wanted both of these forms to interact nicely on one HTML page, without reloading it. External Link can be found: http://goo.gl/IFVv4 Don't worry about "part 3" of the form on the external link, as that is something I will mess with at a later date.
UPDATE: I have edited the code above to show where it is I am at now. Your help was excellent and got me quite far but now I think my problem resides in the php file... thoughts?