我让代码请求用户通过以下代码选择日期:
<script type="text/javascript" charset="utf-8">
var k3 = new Kalendae(document.getElementById("cal"), {
months:3,
format:'DD-MM-YYYY',
mode:'single'
});
</script>
用户通过javascript选择一个日期并点击html提交按钮:
<form name="input_data" action="#" method="post"
onSubmit="javascript:location.href="#?date_value=" + k3.getSelected();">
此代码的 html 操作指示它使用 # 重新加载同一页面,以便 php 可以使用以下内容捕获它:
$dateValue= $_GET['date_value'];
如果我回显$dateValue理论上它应该回显原始的javascript输入吗? 如果没有,需要如何修改?
只需使用
<form action="" method="post">
应该工作。
假设您将按钮称为"保存"(名称="保存")。这将使在提交时触发 PHP。
if (isset($_POST['save'])) { // Your stuff here
相反,您应该更新有关更改的卡兰达信息,将其存储在隐藏的输入字段中。我知道提交带有哈希标签的表单会导致多个浏览器出现问题。
如果像这样从表单标记中删除#
:
<form name="input_data" action="#" method="post"
onSubmit="javascript:location.href="?date_value=" + k3.getSelected();">
url 将被附加到?date_value=Whatever
并调用,但表单提交并抓取操作并将数据发布到它,如果您保留它,则不会调用页面,因此理论上没有原因会因为第二个页面加载而丢失 get 没有值,但您可以通过对表单使用此编辑来使其工作,如下所示:
<script type="text/javascript">
function edit() {
document.input_data.action = "?date_value="+k3.getSelected();
}
</script>
<body>
<form name="input_data" action="" method="post" onSubmit="javascript:edit();">
...
</form>
</body>
这将发送 get 值以及表单中的 post 值,您可以通过更新表单中的 onSubmit 属性并删除编辑函数来执行此操作而无需使用其他函数,如下所示:
<body>
<form name="input_data" action="" method="post" onSubmit="javascript:this.action='?date_value'+k3.getSelected();">
...
</form>
</body>