gpt4 book ai didi

php - 从 jquery timepicker 读取输入并将其传递给 php 脚本

转载 作者:行者123 更新时间:2023-12-01 05:43:20 26 4
gpt4 key购买 nike

我是前端脚本新手,需要一些关于编写 JavaScript 的帮助。

使用谷歌,我取得了一些进展,但无法获得所需的结果。

我有 shell 脚本,它按预期工作。现在我需要为用户创建简单的 UI,他们将在其中输入报告的 start_date 和 end_date,这需要抓取并传递给 shell 脚本。

我读到,不可能从 javascript 直接调用 shell 脚本,所以我调用简单的 PHP 文件,该文件又执行 shell 脚本。

到目前为止,我的 javascript 可以执行此操作,并且 shell 脚本正在执行。

我需要添加功能来获取开始日期和结束日期,重要的是将其转换为 unix 刻度格式并将其传递给 shell 脚本。

这是我的脚本

JavaScript

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-timepicker-addon/1.4.5/jquery-ui-timepicker-addon.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-timepicker-addon/1.4.5/jquery-ui-timepicker-addon.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
$( "#datetimepicker1,#datetimepicker2" ).datetimepicker();
});
</script>
<script type="text/javascript">

function submitAction() {

$.ajax({
url:"report.php",
type: "POST"
})
}

</script>
</head>
<body>

<p>Start Date: <input type="text" id="datetimepicker1"></p>
<p>End Date: <input type="text" id="datetimepicker2"></p>
<p><input type="button" onclick="submitAction()" value="Get Report" /></p>


</body>
</html>

php

<?php
$output = exec("./exceptions_report.sh 1427955771711 1427998971711");
echo 'Report will be sent to your mail';
?>

shell

startdate=$1
enddate=$2
curl -X POST {http://localhost:9200/_search?} -d '{"query":{"filtered":{"query":{"bool":{"should":[{"query_string":{"query":"*"}}]}},"filter":{"bool":{"must":[{"range":{"@timestamp":{"from":$startdate,"to":$enddate}}},{"terms":{"level.raw":["ERROR"]}}]}}}},"size":1900,"fields":["logdate","level","device_id","thread","category","messagetext"],"sort":[{"@timestamp":{"order":"asc","ignore_unmapped":true}},{"@timestamp":{"order":"asc","ignore_unmapped":true}}]
}' > input.json
#
cat input.json | jq '.hits.hits[].fields' --compact-output | sed 's/[][]//g' | recs tocsv --key logdate,level,device_id,thread,category,messagetext > report.csv
#
mail -s "Exceptions report" -a report.csv "mail_adress" << EOM
Please find exceptions report attached.
EOM
#

最佳答案

在您的 html 中,添加一个表单,如下所示:

<form id="form" action="" method="POST">
<p>Start Date: <input type="text" name="date_1" id="datetimepicker1"></p>
<p>End Date: <input type="text" name="date_2" id="datetimepicker2"></p>
<p><input type="submit" value="Get Report" /></p>
</form>
<div id="AjaxResult"></div>

<script type="text/javascript">
$(document).ready(function(){
$('#form').on('submit', function(e){
e.preventDefault();
data = $(this).serialize();
$.ajax({
url:"report.php",
type: "POST",
data: data,
success: function(data){
$('#AjaxResult').html(data);
}
});
});
});
</script>
  • 这里我们使用 .serialize() 对于表单数据
  • 并在提交#form时触发ajax
  • report.php 的结果将返回到#AjaxResult html 中的 div
  • e.prventDefault() 取消默认的表单提交操作,这将防止页面刷新,

<小时/>在 PHP (report.php) 中,您可以获取如下输入值:

<?php

$date_1 = $_POST['date_1'];
$date_2 = $_POST['date_2'];

echo $date_1 . "<br>";
echo $date_2 . "<br>";

$output = exec("./exceptions_report.sh 1427955771711 1427998971711");
echo 'Report will be sent to your mail';

?>

将输出:

04/08/2015 00:00 // user selection
04/10/2015 00:00 // user selection
Report will be sent to your mail

<div id="AjaxResult"></div>内使用 .html() 成功回调中的方法

关于php - 从 jquery timepicker 读取输入并将其传递给 php 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com