1

谁能帮我编辑此页面以记住表单值?我想我需要使用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>
4

2 回答 2

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在第一个代码块的中途有一些例子。

于 2012-05-12T09:17:12.400 回答
0

您可以通过将 post 值添加到 HTML 值来分配值,如下所示:

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

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

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

于 2012-05-04T14:32:50.227 回答