我正在使用Django和Bootstrap来创建一个简单的网站。
在我的.html
文件中,我正在使用Bootstrap来显示日期选择器。
<div id="datepicker" ></div>
同样在.html
中,我有一些快速而脏的javascript代码,当我的datepicker被点击时会更新。
<script>
function setup(){
<SOME OTHER JS>
$('#datepicker').on("changeDate", function() {
$('#my_hidden_input').val(
$('#datepicker').datepicker('getFormattedDate')
);
});
$(document).ready(setup);
</script>
我想将这个新日期传回我的Django页面。基本上我想用与这个新日期有关的数据刷新页面,我的Django代码知道如何处理新的日期。
我该怎么做?我应该重定向回到我当前的页面,但是在URL中添加一些东西,以便Django的正则表达式能够获取它吗?或者我应该使用新日期进行Http GET吗?
答案 0 :(得分:0)
您可以使用Ajax从服务器获取数据而无需刷新页面:
jQuery.ajax({
type: 'POST',
url: 'web/path/to/php/file.php',
data: {
post_date: $('#datepicker').val() //this is the data to post to server
},
success: function(res) {
//code executed after server response. res - server response
$('#datepicker').append(res); //modifying your html
}
});
以file.php为例:
echo $_POST['post_date']; //accessing your date on server side and return it
如果需要刷新页面,您可以在网址中发送数据:
$('#datepicker').on("changeDate", function() {
var val = $('#my_hidden_input').val(
$('#datepicker').datepicker('getFormattedDate')
);
val = encodeURIComponent(val); //encode data for url passing
window.location.href = '?date = ' + val; //goto url with appended parameter
});
获取您使用的数据:
$date = urldecode($_GET['date']);
答案 1 :(得分:0)
<script>
function pass_this_to_backend(date){
$.ajax({
type: "POST",
url: "/get_date/",
data: { 'date':date },
dataType: "json",
success: function(response) { alert(response); },
error: function( rrror) { alert(error); }
});
}
function setup(){
<SOME OTHER JS>
$('#datepicker').on("changeDate", function() {
$('#my_hidden_input').val(
$('#datepicker').datepicker('getFormattedDate')
);
pass_this_to_backend(date);
});
$(document).ready(setup);
</script>