2012-12-17 34 views
5

Tôi có một văn bản đầu vào trong biểu mẫu cho ngày và tôi sử dụng trình ghi ngày tháng JQuery để chọn ngày.Làm thế nào để vượt qua giá trị jquery datepicker theo hình thức POST phương pháp?

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

khi tôi sử dụng biểu mẫu đăng bài để đăng các giá trị vào một php khác để tính toán. tôi không nhận được các giá trị từ văn bản đầu vào này một mình. tôi nhận được một giá trị trống thay vì ngày đã chọn.

$date=$_POST['datepicker']; 

Tôi không chắc chắn về cách chuyển giá trị datepicker trong biểu mẫu POST. Ai đó có thể giúp tôi không?

Trả lời

8

Trình ghi ngày tháng của jQuery không liên quan gì đến việc đăng biểu mẫu của bạn. Nếu biểu mẫu của bạn được đặt thành "đăng" thì mọi thứ còn lại trong trường nhập đó sau khi người dùng đã chọn ngày sẽ được gửi cùng với biểu mẫu.

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

Cung cấp cho bạn:

$date = $_POST['datepicker']; 

Tuy nhiên nếu mẫu của bạn đang được gửi đi như là một "nhận được" yêu cầu bạn sẽ cần phải truy cập vào nó như vậy.

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

Cung cấp cho bạn:

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

Tôi đã đặt phương thức = "POST". nhưng nó không hoạt động cho đến nay, nhưng bây giờ nó hoạt động. – Allen

2

Đó là một hình thức đơn giản với một datepicker

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

Bây giờ jquery bạn, chúng tôi sẽ sử dụng một số công cụ 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; 
});​ 

Và cuối cùng là tập tin pass.php của bạn

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

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

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

điều này đã giúp tôi, cảm ơn bạn. – surfbird0713

+0

Bạn được chào đón, vui vì tôi đã giúp – Theodore

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

công trình đối với tôi, đọc ít nhất 10 cách rất phức tạp để làm việc đó và sau đó nhận ra công trình này. Bạn đang khởi tạo một giá trị mới mỗi lần. bạn lưu trữ ngày ở đâu đó trong tập lệnh php của bạn, bằng cách sử dụng hình thức đầu vào hoặc một số kỹ thuật khác và sau đó tái chế nó trở lại vào tuyên bố trên. Vì vậy, tải lại không ảnh hưởng đến kết quả.

Nếu myCurrentDate không được đặt, nó sẽ đặt theo mặc định. Việc đặt nó vào ngày hôm nay yêu cầu một câu lệnh php nếu đặt nó lần đầu tiên (hoặc tải lại trang) đến ngày mới() và câu lệnh khác có thể được sử dụng để bao gồm mã trên.

Các vấn đề liên quan