0

我有代码请求用户通过此代码选择的日期:

 <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输入吗?如果没有,它需要如何修改?

4

2 回答 2

0

只需使用

<form action="" method="post">

应该管用。

假设您将按钮称为“保存”(name="save")。这将在提交时触发 PHP。

if (isset($_POST['save'])) { // Your stuff here

相反,您应该更新您的日历信息,将其存储在隐藏的输入字段中。我知道提交带有井号标签的表单会导致多个浏览器出现问题。

于 2012-05-04T13:40:50.883 回答
0

如果您#像这样从表单标签中删除:

<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>
于 2012-05-04T13:54:09.607 回答