我有一个PHP脚本:
<?php
$species = $_GET['species']
...//do things to prepare the query
$result = //result of the query.
if (isset($_GET['download'])){
getCSV();
}
function getCSV(){
if ($result->num_rows > 0){
$f = fopen("csvFile", "w");
while ($row = $result->fetch_assoc()){
fputcsv($f, $row);
}
fclose($f);
echo ("downloaded");
}
else{
echo ("no results to download");
}
}
?>
还有一些HTML代码:
<button type="button" onclick="window.location.href='query.php?download=true'"> Click to download as csv file </button>
php脚本和html代码都存在于同一个文件query.php中。 php脚本也是从另一个地方调用的,它会发送&#39;物种&#39; GET请求(以及其他几个,但我没有费心将它们包含在这里)
我想点击按钮调用getCSV函数。我不希望页面刷新,所以我知道我应该使用ajax和jquery(并且我知道之前有很多关于为此目的使用ajax的问题)。但是,php脚本需要将$_GET['species']
和其他数据传递给它,因此当我单击按钮(类似地,如果我使用ajax)时,&#39;物种&#39; GET变量丢失,因为其他GET变量未通过按钮传递给query.php。因此,错误地填充了查询,并且对无用数据调用了getCSV函数。
从query.php调用getCSV()函数。在调用时,我可以访问页面的URL,并操纵它以确定除了下载&#39;下载的其他GET变量。 (例如&#39;物种&#39;)是。是否可以调用函数而不必这样做,因为我有很多变量?
提前致谢。
答案 0 :(得分:0)
index.php 请参阅此处
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<button type="button" id="test"> Click to download as csv file </button>
<input type="hidden" id="val" value="true"> <!--download filename value true and false-->
<script>
$(function(){
$('#test').click(function(){
var val = $("#val").val();
$.ajax({
url: 'query.php',
type: 'GET', // get method
data: 'download='+val, // download get name + value go
success: function(data) {
// success
alert(data);
},
error: function(data) {
// error
alert(data);
}
});
});
});
</script>
query.php 请参阅此处
<?php
$species = clean($_GET['download']); // clean func magic quotes fix
if (empty($species)) {
echo 'get name not empty';
// empty get name print
}else{
if ($species == 'true'){
echo 'download';
// true query code here...
}else{
echo 'no download';
// error code here
}
}
?>
现场提供的文章样本标题。在编写搜索之前。
我告诉他,你可以调整你的系统。
问候。