Php ajax中的动态url

Php ajax中的动态url,php,ajax,csv,Php,Ajax,Csv,我尝试从data.csv绘制图表 $(document).ready(function () { $.ajax({ type: "GET", url: "data.csv", dataType: "text", success: function(data) {processData(data);} }); 完整的html代码是 但我必须使用用户给定的参数创建data.csv。我正在通过表单获取方法获取 <

我尝试从data.csv绘制图表

$(document).ready(function () {

    $.ajax({
        type: "GET",
        url: "data.csv",
        dataType: "text",
        success: function(data) {processData(data);}
    });
完整的html代码是

但我必须使用用户给定的参数创建data.csv。我正在通过表单获取方法获取

<form action="/test.php" >
<input type="text" name="starttime" placeholder="starttime " >
我打算从这个新创建的csv生成图形。但是我不能

给出动态url,即与shell脚本创建的文件名相同。另外,在服务器上也有可能生成许多文件,是否有一种方法可以干净地完成这项工作。 让php调用绘图并显示图形 您不应该调用data.csv文件,而应该调用一个PHP文件来呈现新的csv文件

HTML:

<form id="yourForm">
<input type="text" name="starttime" placeholder="starttime " >
</form>
和last-csv-file.php:


注意:shell_execbash myscript.sh$time>data.csv这一行可能存在严重的安全问题;如果用户在&&rm-Rf./字段中键入类似的命令或任何类型的命令,可能会中断服务器。您应该始终检查starttime是否包含日期而不包含其他内容。

现在如何从用户处获取starttime?在您使用echo内容的php脚本中,这与functionI的dataformal参数类似吗?我用一种简单的方法更新了消息,在用户使用javascript提交表单时触发ajax请求。我不明白你的信息的最后一部分是什么,就像函数的dataformal参数,你能重新格式化吗?对不起,英语不是我的主要语言。谢谢@Raphael,但是,这似乎没有调用脚本。我在表格上加了一个。但单击“提交”。控件在单击绘图时永远不会到达javascript
<form id="yourForm">
<input type="text" name="starttime" placeholder="starttime " >
</form>
$('#yourForm').on('submit', function(event){
    event.preventDefault();
    var $form = $(this);

    $.ajax({
        type: "GET",
        url: "last-csv-file.php?starttime="+$form.find('input[name="starttime"]').val(),
        dataType: "text",
        success: function(data) {processData(data);}
    });
});
$time=$_GET['starttime'];

// Write the CSV in a temporary file
$tmpFileName = tempnam('/tmp', 'a-prefix-of-your-choice');
shell_exec("bash myscript.sh $time > $tmpFileName");

// Get the content of your tmp CSV file and remove it
$csvContent = file_get_contents($tmpFileName);
unlink($tmpFileName);

// Display that content with the proper mimetype
header('content-type: text/csv');
echo $content;
exit;