Изменить синтаксис параметра при отправке формы - PullRequest
0 голосов
/ 31 января 2019

Я работаю над этой формой:

<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 ') to (' Ymd_000) и p_pax to 1_1_1, при отправке формы?

Оцените помощь по этому вопросу ...

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Изменение значений перед отправкой формы, когда вы не можете редактировать HTML-код.

Изменения в вашем HTML (добавление идентификатора атрибутов):

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

jQuery script:

$(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.

0 голосов
/ 31 января 2019

Для 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'"
    });
});
...