简体   繁体   中英

Remember form field values

Can anyone help me edit this page to remember the form values? I think I need to use cookies? Ive searched this question in alot of places but because I have already got scripts in place that change certain aspects of my page I am having trouble working it out.

<html>
<head>
<title>Laterooms App</title>
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="width=device-width; initial-scale = 1.0; maximum-scale=1.0; user-scalable=no" />
<style type="text/css">
*{margin:2;padding:0}
html, body {width:320;overflow:hidden}
</style>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function submitForm(s) {
s.value = " Loading... ";
return true;
}
// End -->
</script>
<script type="text/javascript">
function changeImg(img, newimg) {
img.src = newimg;
}
</script>

<center>
<form name=myform onSubmit="return submitForm(this.submitbutton)">
<img src="laterooms.jpg"><br><br>
<input type=text value="Destination" name=title onclick="this.value = '';">
<br>Date:<br>
<select name="month">
    <option value="1">January
    <option value="2">February
    <option value="3">March
    <option value="4">April
    <option value="5">May
    <option value="6">June
    <option value="7">July
    <option value="8">August
    <option value="9">September
    <option value="10">October
    <option value="11">November
    <option value="12">December
</select>
<select name="day">
    <option value="1">1
    <option value="2">2
    <option value="3">3
    <option value="4">4
    <option value="5">5
    <option value="6">6
    <option value="7">7
    <option value="8">8
    <option value="9">9
    <option value="10">10
    <option value="11">11
    <option value="12">12
    <option value="13">13
    <option value="14">14
    <option value="15">15
    <option value="16">16
    <option value="17">17
    <option value="18">18
    <option value="19">19
    <option value="20">20
    <option value="21">21
    <option value="22">22
    <option value="23">23
    <option value="24">24
    <option value="25">25
    <option value="26">26
    <option value="27">27
    <option value="28">28
    <option value="29">29
    <option value="30">30
    <option value="31">31
</select>
<select name="year">
    <option value="2012">2012
    <option value="2013">2013
    <option value="2014">2014
</select>
<br><br>
No. of Nights:
<select name="nights">
    <option value="1">1
    <option value="2">2
    <option value="3">3
    <option value="4">4
    <option value="5">5
    <option value="6">6
    <option value="7">7
    <option value="8">8
    <option value="9">9
    <option value="10">10
    <option value="11">11
    <option value="12">12
    <option value="13">13
    <option value="14">14
    <option value="15">15
    <option value="16">16
    <option value="17">17
    <option value="18">18
</select>
<input type=submit name=submitbutton value="Submit"><br>
Please be patient<br>while your results load.
<hr color="#401485">
<?php

$url = "http://xmlfeed.laterooms.com/index.aspx?aid=1000&rtype=4&kword=".$_GET['title']."&sdate=".$_GET['year']."-".$_GET['month']."-".$_GET['day']."&nights=".$_GET['nights']."&orderby=hoteldistance&sortorder=asc";

$xml = simplexml_load_file($url);

foreach($xml->hotel as $hotel)
{

echo "<p>";
echo "<img src=".$hotel->images." height=100 width=100><br/>";
echo "<strong>Hotel Name:</strong><br> ".$hotel->hotel_name."<br/>";
echo "<strong>Prices From:</strong> &pound;".$hotel->prices_from."<br/>";
echo "<a href=".$hotel->hotel_link."><img src=http://affiliates.laterooms.com/AffiliateImages/en/buttons/more_details1.gif onclick=this.src='loading.gif'></a><br/>";
echo "<strong>Miles from ".$_GET['title']."</strong> ".$hotel->hotel_distance."<br/>";
echo "</p><hr color=#401485>";

}
?>

</form> 
</center>
</body>
</html>

When you submit a form in PHP the $_POST super variable is filled with your form's fields.

As Farhan says above you can just put <?php echo $_POST['fieldname']; ?> <?php echo $_POST['fieldname']; ?> into your value property. However that will not help you with your drop down boxes. I would suggest the following:

<input type="text" name="txtName" value="<?php echo (isset($_POST['txtName']) ? $_POST['txtName'] : ''); ?>"/>

The above will do your input fields, the "echo (isset(..." bit will stop PHP from flagging an error if the form has yet to be submitted. The next block will cover your drop down boxes.

<select name="ddlCountry"> 
  <option value="England" <?php echo (isset($_POST['ddlCountry']) && $_POST['ddlCountry'] == 'England' ? ' selected="selected" ' : '');?> >England</option>
  <option value="France" <?php echo (isset($_POST['ddlCountry']) && $_POST['ddlCountry'] == 'France' ? ' selected="selected" ' : '');?> >France</option>
</select>

The above block will put a selected flag on your options if the relevant one was answered when the form was posted. I would normally build my drop downs in PHP echoing each option in a loop to cut down on the amount of code required but your way will work just as well.

If you need help understanding the echo ? 'a' : 'b'; method take a look at http://php.net/manual/en/function.echo.php there are some examples half way down the first code block.

You can assign the values by adding the post values to the HTML values like this:

<input type=text value="Destination" name=title onclick="this.value = '';" value="<?php echo $_POST['title'] ?>">

You can set the value="" for each input on your form with the corresponding input name. When the page is posted, the $_POST array contains the values that you just submitted and therefore you can assign it to the proper input tags value.

Hope that helps you to better understand how form memory works in PHP.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM