/ / Imprimer les données de la zone de texte sur la même page dans un champ caché au format correct - php, formes, get

Imprimer les données de la zone de texte sur la même page dans un champ caché au format correct - php, forms, get

J'ai un formulaire de commande dans ubercart. Pour que je puisse afficher un calendrier dans la section administrateur, je dois être en mesure de récupérer une date de jeu que l'utilisateur sélectionne à la fin du paiement.

Ce calendrier sera affiché dans une vue, mais le champ supplémentaire Webform Checkout n'est pas compatible.

Pour résoudre ce problème, j'ai ajouté un champ supplémentaire compatible avec les vues, mais je ne suis pas en mesure d'assigner un sélecteur de date à ce champ.

Ma question est la suivante: puis-je conserver le champ d'origine, mais comme ils entrent une date en haut de la page, le champ masqué en bas de la page contient également la date saisie?

Voici le code du sélecteur de date en haut de la page, composé de trois zones de sélection et d'un lien d'agenda.

<select class="month form-select" id="edit-panes-webform-nid5-0-date-month" name="panes[webform_nid5][0][date][month]"><option value="" selected="selected">Month</option><option value="1">Jan</option><option value="2">Feb</option><option value="3">Mar</option><option value="4">Apr</option><option value="5">May</option><option value="6">Jun</option><option value="7">Jul</option><option value="8">Aug</option><option value="9">Sep</option><option value="10">Oct</option><option value="11">Nov</option><option value="12">Dec</option></select>

<select class="day form-select" id="edit-panes-webform-nid5-0-date-day" name="panes[webform_nid5][0][date][day]"><option value="" selected="selected">Day</option><option 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><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>

<select class="year form-select" id="edit-panes-webform-nid5-0-date-year" name="panes[webform_nid5][0][date][year]"><option value="" selected="selected">Year</option><option value="2013">2013</option><option value="2014">2014</option><option value="2015">2015</option></select>

<input type="image" src="/sites/all/modules/webform/images/calendar.png" class="webform-calendar webform-calendar-start-2013-09-06 webform-calendar-end-2015-09-05 webform-calendar-day-1 hasDatepicker" alt="Open popup calendar" title="Open popup calendar" id="dp1378391293298">

Pour la zone de valeur de date cachée en bas, je peux entrer un extrait de code php.

Je ne suppose pas qu’il existe un moyen simple d’imprimer les valeurs des trois zones de sélection dès qu’elles sont complétées

J'ai essayé quelque chose comme ...

<?php
$get_month = $_POST["panes[webform_nid5][0][date][month]"];
print($get_month);
$get_day = $_POST["panes[webform_nid5][0][date][day]"];
print($get_day);
$get_year = $_POST["panes[webform_nid5][0][date][year]"];
print($get_year);
?>

Mais cela ne fonctionne pas, et j’aurais besoin de la date pour lire dans un format JJ-MM-AA

Quelqu'un peut-il aider?

Réponses:

1 pour la réponse № 1

ÉDITÉ Comme vous avez jQuery disponible sur la page, cela rend les choses beaucoup plus simples

<script>
function changeDate()
{
var $ = jQuery; //for some reason $ is not already defined as jQuery
var date = $("select#edit-panes-webform-nid5-0-date-month").val()
+ "-"
+ $("select#edit-panes-webform-nid5-0-date-day").val()
+ "-"
+ $("select#edit-panes-webform-nid5-0-date-year").val();

$("input#edit-panes-billing-address-billing-ucxf-date-of-game").val(date);
}
</script>

J'ai essayé ceci sur votre page et ça marche quanden utilisant les cases de sélection mais pas dans la fenêtre contextuelle sans éditer le sélecteur de date jquery, cela dépend de ce que la licence vous permet de faire avec cela

cela suppose que votre date masquée est une div ou une plage et non une entrée, s'il s'agit d'une entrée changer la ligne

document.getElementById("hidden-date-box-id").innerHtml = month + "-" + day + "-" + year;

à

document.getElementById("hidden-date-box-id").value = month + "-" + day + "-" + year;

<script>
function changeDate()
{
var month = document.getElementById("edit-panes-webform-nid5-0-date-month").value;
var day   = document.getElementById("edit-panes-webform-nid5-0-date-day").value;
var year  = document.getElementById("edit-panes-webform-nid5-0-date-year").value;

document.getElementById("hidden-date-box-id").innerHtml = month + "-" + day + "-" + year;
}
</script>

puis ajouter onchange="changeDate(); return false;" à chacun de vos sélections

c'est du code non testé et j'utilise rarement javascript pur, mais je suis assez sûr que c'est correct