2012-12-17 8 views
5

Ho un testo di input nel modulo per la data e utilizzo JQuery datepicker per selezionare la data.Come passare il valore jquery datepicker nel metodo POST del modulo?

<input type="text" id="datepicker" name="datepicker" value="Date"/> 

quando uso il modulo per postare i valori in un altro php per il calcolo. non ottengo i valori da questo testo di input da solo. ottengo un valore vuoto invece della data selezionata.

$date=$_POST['datepicker']; 

Non sono sicuro di come passare il valore di DatePicker nel modulo POST. Qualcuno mi può aiutare?

risposta

8

jQuery's datepicker non ha nulla a che fare con la pubblicazione del modulo. Se il tuo modulo è impostato su "post", qualsiasi cosa rimanga in quel campo di input dopo che l'utente ha selezionato, verrà inviata una data con il modulo.

<form action="process.php" method="post"> 
    <input type="text" id="datepicker" name="datepicker" value="Date"/> 
</form> 

Ti dà:

$date = $_POST['datepicker']; 

Tuttavia, se il formulario è destinato come una richiesta "get" è necessario accedere come tale.

<form action="process.php" method="get"> 
    <input type="text" id="datepicker" name="datepicker" value="Date"/> 
</form> 

Ti dà:

$date = $_GET['datepicker']; 
+1

Ho già impostato il metodo = "POST". ma non funzionava finora, ma ora funziona. – Allen

2

Questo è un semplice modulo con un datepicker

<form id="myform" name="myform"> 
    <input type="text" id="datepicker" name="datepicker" value="Date"/> 
    <input type="button" id="submitMe"> 
    </form> 

Ora il vostro jQuery, ci accingiamo a utilizzare alcune cose AJAX:

//init datepicker 
$(function() { 
    $("#datepicker").datepicker({ 
     showButtonPanel: true 
    }); 
}); 

//pass deatepicker to php 
$("#submitMe").click(function() { 
    $.ajax({ 
     type: 'POST', 
     url: "pass.php", 
     dataType: "json", 
     data: $('#myform').serialize(), 
     success: function(data) { 
      console.log("Done"); 

     } 
    }); 
return false; 
});​ 

E infine il file pass.php

<?php 
//note that date may have slashes or dots so we url decode it 

$date = urldecode ($_GET['datepicker']); 

echo "chosen date is: ".$date; 
?> 
+0

questo mi ha aiutato, grazie. – surfbird0713

+0

Prego, felice di aver aiutato – Theodore

2
$("#currentDate").datepicker("setDate", new Date("<?php echo $_POST['myCurrentDate'] ?>")); 

funziona per me, leggere almeno 10 modi molto complicati di farlo e poi realizzato questo funziona. Stai istanziando un nuovo valore ogni volta. memorizzi la data da qualche parte nei tuoi script php, usando l'input del modulo o qualche altra tecnica e poi ricicla nella dichiarazione precedente. Quindi ricaricare non influisce sul risultato.

Se myCurrentDate non è impostato, verrà impostato per impostazione predefinita. Per impostarlo sulla data odierna è necessaria un'istruzione php if per impostarla la prima volta (o ricaricare la pagina) su new Date() e l'altra istruzione può essere utilizzata per includere il codice precedente.

Problemi correlati