记住表单字段值

时间:2012-05-03 17:22:15

标签: php html forms cookies

有人可以帮我编辑此页面以记住表单值吗?我想我需要使用cookies?我已经在很多地方搜索过这个问题,但因为我已经有了改变我页面某些方面的脚本,所以我无法解决这个问题。

<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>

2 个答案:

答案 0 :(得分:4)

当您在PHP中提交表单时,$ _POST超级变量将填充表单的字段。

正如Farhan所说,您可以将<?php echo $_POST['fieldname']; ?>放入您的value属性中。但是,这对您的下拉框无效。我建议如下:

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

以上将执行您的输入字段,“echo(isset(...”位将阻止PHP在表单尚未提交时标记错误。下一个块将覆盖您的下拉框。

<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>

如果在发布表单时回答了相关的标记,则上面的块会在您的选项上放置一个选定的标记。我通常会在PHP中构建我的下拉菜单,在循环中回显每个选项以减少所需的代码量,但您的方式也可以正常工作。

如果您需要帮助了解回声? 'a':'b';方法看看http://php.net/manual/en/function.echo.php在第一个代码块的中间有一些例子。

答案 1 :(得分:0)

您可以通过将匹配值添加到HTML值来指定值,如下所示:

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

您可以使用相应的输入名称为表单上的每个输入设置值=“”。发布页面时,$ _POST数组包含您刚刚提交的值,因此您可以将其分配给正确的输入标记值。

希望能帮助您更好地理解表单内存在PHP中的工作方式。