entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Capturar datos de un datepicker para enviarlos en una variable global _POST

Hola buenos dias,

Gusto saludarles, nuevamente por aca ya que queriendo estilizar un poco mi proyecto decidí colocar en el input para las fechas un datepicker, el calendario funciona a la perfeccion pero al hacer submit me arroja error a validar los datos enviados, esto porque no reconoce los valores del datepicker como hago para almacenar el resultado del datepicker en un string?

Espero puedan ayudarme...

Mi datepicker esta asi:

$('#dateexpiry').datepicker({

format: "mm/yyyy",

startView: 2,

minViewMode: 1,

language: "es",

autoclose: true

desde php lo llamo asi pero no me funciona

$ExpirationDate = trim($_POST["dateexpiry"]);

agradeciendo de antemano su apoyo...

saludos cordiales...

2votos

Leonardo-Tadei comentado

Qué elemento HTML es el que tiene el ID #dateexpiry ?

1voto

jose_busta comentado

hola leonardo buenas tardes,

lo tengo asi:

<div class="col-xs-6 col-md-6">

      <div class="form-group">

         <label for="dateexpiry" class="text-uppercase">

             <span class="hidden-xs">fecha</span> expiracion

                 </label>

 <div class="input-group">

              <input

               type="text"

               class="form-control"

               name="dateexpiry"

               id="dateexpiry"

               placeholder="MM / YYYY"

               required >

<span class="input-group-addon">

   <span class="glyphicon glyphicon-calendar"></span>

                  </span>
        </div>

  <span class="help-block">solo mes y año, utilizando “/” como separador. Por ejemplo: 02/2017</span>

         </div>

     </div>

le coloque al input y a el label el mismo id para que la funcion me afecte a ambos sin embargo no se si eso sea lo que me este afectando...

0voto

jose_busta comentado

aun no doy con la respuesta, todos los intentos que he hecho me regresa un valor undefined... tengo la opcion del atributo month en el input pero no me gusta su diseño en chrome, tendre que hacer un input select con los meses y años y una funcion que los una y separe con (/) y recojo el resultado en una variable que sera la que pase a php... aunque queria que me quedara con un diseño mas llamativo, dejando el input como text me funciona pero se corre el riesgo de que el usuario no tipee el formato que necesito mm/yyyy, en lo que decida una solucion es comento por si alguien se enfrenta a este mismo problem...

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola @jose_busta,

es HTML inválido repetir el ID de en más de un elemento... eso hace además que un getElementByID() funcione mal para las repeticiones.

Lo que no veo en tu código es dónde empieza el formulario que vas a mandar y dónde termina: los input de formularios se envía solo si están entre <form> y </form>, salvo que lo estés mandando vía un recolector JavaScript por AJAX, en cuyo caso tampoco vemos ese código... sin ver esa parte del código, solo podemos adivinar qué es lo que hace que no funcione.

Saludos cordiales

0voto

jose_busta comentado

las pruebas las realizo en notepad++ asi:

<html>
<head>

</head>

<body>
<div class="row">

                                    <div class="col-xs-12">

                                      <div class="container">
    <div class="col-sm-6" style="height:130px;">
        <div class="form-group">
            <div class='input-group date' id='datetimepicker9'>
                <input type='text' class="form-control" >
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar">
                    </span>
                </span>
            </div>
        </div>
    </div>
</div>
 </div>
</div>

 <div class="row">

  <label class="col-xs-5 col-md-5 pull-left" for="Amount" class="text-uppercase">Monto</label>  
  <div class="col-md-8">
  <input id="Amount" name="Amount" type="number" placeholder="Monto" class="form-control input-md" required >
  <span class="help-block">Monto a Debitar, utilizando punto “.” como separador decimal. Por ejemplo: 2000.00</span>  
  </div>
  </div>

<div class="col-xs-6 col-md-6">

  <div id= "mostrar">

  </div> 

  <button type="button" name="clickea" onclick="validar ();"> clickea </button>

  </div>

<!--  jQuery -->
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/globalize/1.3.0/globalize.min.js"></script>

<!-- Isolated Version of Bootstrap, not needed if your site already uses Bootstrap -->
<link rel="stylesheet" href="https://formden.com/static/cdn/bootstrap-iso.css" >

<!-- Bootstrap Date-Picker Plugin -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-moment-picker/0.10.1/angular-moment-picker.min.js" ></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-moment/1.2.0/angular-moment.min.js" ></script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css">

<script>
$('#datetimepicker9').datepicker({

format: "mm/yyyy",

startView: 2,

minViewMode: 1,

language: "es",

autoclose: true

});
</script>

<script>

function validar(){

 var valor = document.getElementById("datetimepicker9").value;
 if( valor != " " ) {
 alert (valor)
 }else{
   alert('Vacío');
 }
}

</script>

<script>    

$('#Amount').on('focusout', function (e) {
                    Globalize.culture().numberFormat[","] = ".";
                    Globalize.culture().numberFormat["."] = ",";

                    var __this = $(this);
                    var value = Globalize.parseFloat(__this.val());
                    var test = Globalize.format(value, "n2");

                    __this.val(test.replace(/\./g, ''));
                });
</script> 

</body>
</html>

aqui tampoco me funciona me da el mismo resultado undefined

1voto

Leonardo-Tadei comentado

Hola @jose_busta,

veo que estás queriendo ver el valor escrito en el DatePicker en un alert en la función JavaScript validar().

Esa función busca un value del elemento con ID "datetimepicker9", pero este elemento HTML es un DIV, y los DIV no tienen value!

Supongo que el date picker escribirá el valor de la fecha en el INPUNT que está adentro de ese DIV... si mi suposición es correcta, para poder leer la fecha deberías ponerle un ID al INPUT para poder leerlo y después usarlo.

Sería:

...
            <div class='input-group date' id='datetimepicker9'>
                <input type='text' class="form-control" id="miFecha">
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar">
                    </span>
                </span>
            </div>
...
...
function validar(){
  var valor = document.getElementById("miFecha").value;
   if( valor != "" ) {
     alert (valor)
   }else{
     alert('Vacío');
   }
}
...

Saludos cordiales!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta