早上好。
我正在进行一个项目,该项目由2个文本框,1个按钮和1个下拉菜单构建。
第一个文本框具有选择日期时间的功能。第二个文本框应该通过单击按钮获得计算结果。
功能
:用户输入了日期时间,现在他可以在下拉菜单中选择一个选项。现在,他可以按按钮来计算日期时间。计算应始终将日期时间加3年。我在 javascript 中完成了该功能:
var fristJahr;
var hFvg;
var hFdatum;
var jahr;
var monat;
var tag;
var fristMonat;
var fristTag;
var frist = new Date();
if (fs.event.eventCode === 'H34' || fs.event.eventCode === 'H06') {
var mydate = fs.event.eventDate;
mydate.setFullYear(mydate.getFullYear() + 1);
mydate.setMonth(11);
mydate.setDate(31);
// fs.showHint(mydate, 'caption?');
var newdate = new Date(mydate.getFullYear(), mydate.getMonth(), mydate.getDate());
fs.event.cCase.limitationDate = newdate;
}
hFvg = fs.event.eventCode;
if (hFvg === 'H17' || hFvg === 'H18' || hFvg === 'H19' || hFvg === 'H20' || hFvg === 'H21') {
hFdatum = fs.event.eventDate;
jahr = (hFdatum.getFullYear());
monat = (hFdatum.getMonth());
tag = (hFdatum.getDate());
fristMonat = monat + 6;
if (fristMonat > 12) {
fristMonat = fristMonat - 12;
fristJahr = jahr + 1;
} else {
fristMonat = fristMonat;
fristJahr = jahr;
}
// Tagesdatum erhöhen
fristTag = tag + 1;
// sicherstellen, das ein gültiges Datum entstehen würde
if (fristMonat === 1 && fristTag > 31) {
fristMonat = 2;
fristTag = 1;
}
if (fristMonat === 2 && fristTag > 28) {
fristMonat = 3;
fristTag = 1;
}
if (fristMonat === 4 && fristTag > 30) {
fristMonat = 5;
fristTag = 1;
}
if (fristMonat === 6 && fristTag > 30) {
fristMonat = 7;
fristTag = 1;
}
if (fristMonat === 7 && fristTag > 31) {
fristMonat = 8;
fristTag = 1;
}
if (fristMonat === 9 && fristTag > 30) {
fristMonat = 10;
fristTag = 1;
}
if (fristMonat === 11 && fristTag > 30) {
fristMonat = 12;
fristTag = 1;
}
frist.setDate(fristTag);
frist.setFullYear(fristJahr);
frist.setMonth(fristMonat);
//frist.get
//frist.toDateString()
// fs.event.cCase.limitationDate = frist.getFullYear() + '-' + frist.getMonth()+1 +'-' + frist.getDate();
var neueFrist = new Date(frist.getFullYear(), frist.getMonth(), frist.getDate());
//neueFrist.setFullYear();
fs.event.cCase.limitationDate = neueFrist;
}
PHP 和 HTML 中现在已经拥有的内容:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link type="text/css" rel="stylesheet" href="demo.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
.mt10px{
margin-top: 10px;
}
.mt20px{
margin-top: 20px;
}
.input{
background: #ffffff;
border: 1px solid #cccccc;
border-radius: 3px;
padding: 6px 4px;
}
p{
line-height: 25px;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../dist/date-time-picker.min.js"></script>
</head>
<body>
<form method="POST" action="">
<table align="center" border="1">
<tbody>
<tr>
<td width="250">
<input type="text" class="mt10px input" id="J-demo-01" name="datum">
<script type="text/javascript">
$('#J-demo-01').dateTimePicker();
</script>
<select>
<?php
require("require.php");
$oMy = new clsMYSQL();
$oMy->Query("select * from IKE_EventTemplate where EventCode like 'H%' and
Variant='H' order by EventCode ASC");
while(!$oMy->eof)
{
echo "<option>";
echo $oMy->row['EventCode'];
echo "</option>";
$oMy->Move();
}
?>
</select>
</td>
<td> <input name="bgBerechne" type="submit" value="Berechne"></td>
<?php
$datum= $_POST['datum'];
echo "<td width='250'><input type='text' class='mt10px input' id='J-demo-
07' value=$datum></td>";
?>
</tr>
</tbody>
</table>
</form>
</script>
</body>
</html>
我在PHP中的代码已经复制了textBox的值,您可以在其中选择日期时间,但它不仅应该复制该值,还应该发布日期时间和下拉菜单功能的解决方案。
有人可以给我一个提示,告诉我我该如何帮助自己? 谢谢您的时间:)!
答案 0 :(得分:0)
使用DateTime来获得所需的功能,此处将给定日期增加3年。 Check here
<?php
$date = '2018-09-20 11:07:00';
$date_after_three_years = DateTime::createFromFormat('Y-m-d H:i:s', $date);
$date_after_three_years ->modify('+3 years');
echo $date_after_three_years ->format('Y-m-d H:i:s');
?>
评论后:
绑定任何对PHP代码进行AJAX请求的javascript函数,该PHP代码将从数据库中获取相应下拉值的DateTime值。
例如
HTML
<select "onchange=getValueFromDatabase(this)"></select>
JAVASCRIPT
function getValueFromDatabase(thisObj)
{
var selected = thisObj.value;
var postData = {
"action": "get_dropdown_value_from_db",
"search_param": selected
}
$.ajax({
url: 'your_code.php',
method: 'POST',
data: postData,
success: function(result)
{
if (result) //then use the value, maybe for your case bind it to the textbox
},
error: function(jqXHR jqXHR, String textStatus, String errorThrown)
{
}
});
}
PHP
require("require.php");
if (isset($_POST["action"]) && $_POST["action"] == "get_dropdown_value_from_db")
{
echo getDropDownValue($_POST["search_param"]); //here you're gettign back the value which you posted from AJAX
die(); //stopping further execution to the code which is not needed at this point
}
function getDropDownValue($value)
{
$returnValue = "";
$oMy = new clsMYSQL();
$oMy->Query("query to fetch datetime where drop down value ='"+ $value +"'");
while(!$oMy->eof)
{
$returnValue = $oMy->row['COLUMN_NAME'];
$oMy->Move();
}
return $returnValue;
}
希望这会有所帮助。无论如何,这只是一个基本概念,总是在编写查询时需要使用带有PreparedStatement的参数化查询。