[英]Passing javascript varibale to php variable using ajax on the same page
我有一个使用for循环创建的日历。 当用户单击日历中的单元格时,他们将被导航到模式窗口。
$calendar.= '<td class="calendar-day"><a href="#myModal" data-toggle="modal" data-target="#myModal" data-id="'.$list_day .'" data-month="'.$month .'" data-year="'.$year .'" onclick=" document.getElementById('. "'myModal'" . ').style.display = ' . "'block'". ' ;"></button><div style="position:relative;height:100px;">';
我将日期,日期和日期分别传递给模式,并将每个日期另存为单独的javascript变量,然后将它们合并在一起以形成javascript变量(日期)。 我想将此变量传递给模式窗口并用作php变量。 我的JavaScript是:
$('#myModal').on('show.bs.modal', function(e) {
var id = $(e.relatedTarget).data('id');
var month = $(e.relatedTarget).data('month');
var year = $(e.relatedTarget).data('year');
var string = id +'/'+ month +'/'+year;
var date = year +'-'+month+'-'+id;
$(e.currentTarget).find('input[name="id1"]').val(string);
$(e.currentTarget).find('input[name="id"]').val(id);
$(e.currentTarget).find('input[name="month"]').val(month);
$(e.currentTarget).find('input[name="year"]').val(year);
$(".test5").val(id+'/'+month+'/'+'/'+year);
$(document).ready(function() {
$('#myModal').click(function() {
$.ajax({
url: 'my_planner.php',
type: 'GET',
data: { var_PHP_data: date },
success: function(data) {
$('#result').html(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//case error }
}
});
});
});
});
我的模态html代码是:
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<span class="close">×</span>
<div class="modal-body">
<form action="my_planner.php" method="post">
<!--<span class="test5"></span>-->
<!--<span class="test"><input type="text" name="id_disabled" value="" disabled/>-->
<input class="test" type="text" name="id1" value="" style="text-align:center; border:0px; font-weight:bold; font-size: 25px;"/>
<hr class="my-4">
<input type="hidden" name="id" value=""/>
<input type="hidden" name="month" value=""/>
<input type="hidden" name="year" value=""/>
<br>
<?$date = $_GET['var_PHP_data'];
echo 'Date:'.$date;?>
<p id="result"></p>
模态显示字符串日期,但不显示变量? 我要去哪里错了? 我对ajax不熟悉
您可以连接日期并将其添加到data-date
,例如:
$calendar.= '<td class="calendar-day"><a href="#myModal" '
.' data-toggle="modal" data-target="#myModal" '
.' data-date="' . $list_day .'/' . $month . '/' .$year .'"'
.' onclick=" document.getElementById('. "'myModal'" . ').style.display = '
. "'block'". ' ;"></button><div style="position:relative;height:100px;">';
在JS中:
var date = $(e.relatedTarget).data('date');
$('#result').html(date);
您不能在PHP中使用JS变量。 如果您构建变量client-side,则您将保留在client-side,直到您将其传递给参数或表单值。
您可以做的是在模式中显示JS变量。
代替这个:
<?$date = $_GET['var_PHP_data'];
echo 'Date:'.$date;?>
您可以使用以下HTML:
<p>Date: <span class="date_value"></span></p>
并添加此JS:
$(".date_value").text(date);
这样,将用JS日期变量的值填充范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.