【问题标题】:Change parameter syntax on form submit更改表单提交的参数语法
【发布时间】:2019-01-31 15:30:42
【问题描述】:

我正在处理这个表格:

<form action="index.php" method="get">
    <label>Ankomst</label> <input type="text" id="datepicker1" name="p_arr" value="<?php echo date('d/m/Y');?>"/>
    <label>Avreise </label><input type="text" id="datepicker2" name="p_dep" value="<?php echo date ('d/m/Y', strtotime(' +1 day'));?>"/>

    <label>Personer </label><select name="p_pax">
        <option selected="selected" value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
    </select>
    <input type="submit" name="submit">
</form>

并且需要更改表单提交的参数语法来自:

http://localhost:8888/booking%20form/index.php?p_arr=31%2F01%2F2019&p_dep=01%2F02%2F2019&p_pax=1

收件人:

localhost:8888/booking%20form/index.php?p_arr=20190131_0000&p_dep=20190201_0000&p_pax=1_1_1

我已尝试使用此代码更改日期语法:

<?php
if(isset ($_GET['submit'])){
  $date = date('Ymd_000', strtotime($_POST['date']));
}
?>

这是 jQuery 代码:

  <script>
  $( function() {
    $( "#datepicker1, #datepicker2" ).datepicker({minDate: "+0"});
  });
</script>

如何在表单提交时将语法从 ('d/m/Y') 更改为 ('Ymd_000) 并将 p_pax 更改为 1_1_1?

感谢对此的帮助...

【问题讨论】:

  • $_GET['submit'] 未设置
  • 如果您通过 GET 发送数据,为什么会有 strtotime($_POST['date'])
  • 你想达到什么目的?为什么要这样更改网址?您的选择输入只会返回一个值,对吧?
  • 我将到达和离开日期,加上预订页面首页表格中的人数。

标签: php forms date parameters


【解决方案1】:

对于 p_pax=1_1_1:

<select name="p_pax">
    <option selected="selected" value="1_1_1">1</option>
    <option value="2_2_2">2</option>
    ...
</select>

对于您的格式日期:

$(function() {
    $("#datepicker1, #datepicker2").datepicker({
        minDate: "+0",
        dateFormat: "yymmdd'_000'"
    });
});

【讨论】:

    【解决方案2】:

    当您无法编辑 HTML 代码时,在发送表单之前更改值。

    HTML 中的更改(添加属性 id):

    <form action="index.php" id="form1" method="get">
    ...
    <select id="p_pax" name="p_pax">
    ...
    

    jQuery 脚本:

    $(function() {
        $("#datepicker1, #datepicker2").datepicker({
            minDate: "+0"
        });
    
        $("#form1").on( "submit", function() {
            $("#datepicker1, #datepicker2").datepicker("option", "dateFormat", "yymmdd'_0000'");
            var val = $("#p_pax option:selected").val();
            $("#p_pax option:selected").val(val + "_" + val + "_" + val);
        });
    });
    

    但是当用户关闭 JS 时,这是一个糟糕的解决方案。

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 1970-01-01
      • 2011-12-15
      • 2014-07-19
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      相关资源
      最近更新 更多