【问题标题】:I don't want to see everything in the URL我不想看到 URL 中的所有内容
【发布时间】:2016-03-20 09:11:32
【问题描述】:
function date(day, month, year) {
  month += "";
  if (month.length <= 1) 
    month = "0" + month;

  document.location.href = "<?php $_SERVER['PHP_SELF'];?>?page=events&day="
                         + day + "&month=" + month + "&year=" + year;
}

我在 Youtube 视频的帮助下制作了这个功能,问题是,我不想看到我在 URL 中选择的日期。谁能帮我做这个?

【问题讨论】:

  • 你不能。你正在重定向,这是一个get,这意味着你必须在url中传递所有参数,这意味着日期必须在那里。
  • 有什么方法可以改变函数,这样我就不必在 URL 中传递所有参数了吗?
  • 我应该怎么知道?你还没有解释这个脚本在服务器上做什么,但是一种或另一种方式,如果那个 daystring/etc... 是必需的,那么他们将不得不以某种方式传递。
  • 你能解释一下你打算用这段代码做什么,那么我可能会给出一些更好的建议。
  • 对不起,我是*的新手,它只是一个日历,如果我点击某个日期,这个日期应该是选择的新日期,现在选择的日期取自URL,但我想通过像 POST 这样的方法而不是当前使用的 GET 来实现这一点。我已经尝试更改要发布的所有内容,但这几乎只会破坏日历。

标签: javascript php html url get


【解决方案1】:

你可以这样做:

<form action="<?php echo $_SERVER['PHP_SELF']."?page=events";?>" method="post" id="calender-form">
     <input type="hidden" name="day" value="<?php echo $_POST['day'];?>"/>
     <input type="hidden" name="month" value="<?php echo $_POST['month'];?>"/>
     <input type="hidden" name="year" value="<?php echo $_POST['year'];?>"/>
</form>

在你的函数 date() 而不是:

document.location.href=......

这样做:

var calenderForm=document.getElementById("calender-form");
calenderForm.day.value=daystring;
calenderForm.month.value=monthstring;
calenderForm.year.value=year;
calenderForm.submit;
}

将 $_GET 替换为 $_POST。试试这个应该可以的。如果您有问题,请在评论中添加。如果它可以帮助您标记为答案并投票。谢谢!

【讨论】:

  • 我刚刚尝试实现它,现在我的代码在我的浏览器中检查元素时似乎做了正确的事情,但是没有显示选定的日期......这应该会发生通过将表中的每个日期(为日历设置)与链接给出的日期(即到达日历页面时的当前日期)进行比较
  • 我在 action 属性中编辑了一些东西,检查一次
  • 说实话,我不知道我是否正确放置了表单,这应该是在调用函数中吧?我认为我现在很愚蠢......我当前使用函数 date() 的代码如下: height='75px' onclick="date()"
  • )" 抱歉,按回车键,无法进一步编辑...
  • 您可以将表单放置在您喜欢的任何位置,但请在页面的最后一个&lt;/body&gt;之前进行
猜你喜欢
相关资源
最近更新 更多
热门标签