表单上预先选择的选项取决于您的链接';We’’’’来自


Pre selected options on form depending on the link you're coming from?

因此,我在表单中有一个日期、月份和年份选择选项。该页面称为new.php,链接到它的页面为event.php?d=1&m=1&y=2015

因为它来自该链接,我希望选择选项在相应的日期(2015年1月1日)。

如有任何帮助,将不胜感激

<?php
    $day = $_GET['d'];
    $month = $_GET['m'];
    $year = $_GET['y'];
    $date = date('Y-m-d', strtotime($day . $month . $year));
?>
<input type="date" value="<?php echo $date; ?>">

一种方法是查看$_SERVER['HTTP_REFERRER']变量,并使用parse_url()函数来很好地解析url并从中获取查询变量,然后将它们用作表单元素中的值。但正如考克斯在评论中提到的那样,这有点不可靠,因为它是由客户设定的。

另一种方法是在event.php页面上设置一个或三个会话变量,如下所示:

$_SESSION['d'] = $_GET['d'];
$_SESSION['m'] = $_GET['m'];
$_SESSION['y'] = $_GET['y'];

然后,在您的new.php文件中,您开始使用会话变量作为form元素中的值。不要忘记使用session_start()在两个页面上启动会话。

如果您可以使用客户端脚本(我建议使用jQuery),那么您可以获得显示正确数据的选择框。

根据URL字符串变量设置三个JavaScript变量。然后在文档就绪时,使用JavaScript/jQuery将选择框设置为JavaScript变量。。

<?php
  $day = $_GET['d'];
  $month = $_GET['m'];
  $year = $_GET['y'];
  echo "<script type='text/javascript'>";
  echo "$(function() {";
  echo "$('#day').val(".$day.");"
  echo "$('#month').val(".$month.");"
  echo "$('#year').val(".$year.");"
  echo "});"
  echo "</script>"              
?>

然后使用带有ID的select语句,以便jQuery可以更新DOM中的正确元素。。

 <select id="day">
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
 </select>

等等。。对于其余的日子,则为月份选择器和年份选择器输入正确的id。