我需要一些帮助,如何从我的index.php文件中将另一个PHP脚本的变量转换为JQuery.
在我的网页上,我可以搜索数据库,这是通过单击执行搜索的按钮完成的,并在页面上的另一个div中显示结果.
这部分网页工作正常.
我接下来要做的是另一个按钮,以便能够下载包含查询结果的文本文件.
结果在另一个PHP文件中计算,该文件与显示它的文件相同.
我在index.php中的JQuery看起来像:
$(document).ready(function(){
$("#querySubmitButton").click(function(evt){
evt.preventDefault(); // stops the submit taking place
var myQuery = $('#queryText').val(); // get the query value
$('#container').load('getData.php', { query:myQuery });
});
$("#selectButton").click(function(evt){
evt.preventDefault();
var selectQuery = $( "#selectBox" ).val();
$('#container').load('getData.php', { query:selectQuery });
});
$("#downloadButton").click(function(evt){
alert($result); //Somehow alert the $result variable from my getData.php file, to make sure that I can receive it and perform further things on it so that it is downloaded as a document.
});
});
当我使用getData.php文件在另一个div中显示我的结果时,我无法回显$result并在JSon中使用它?因为那也会显示在我的网页上,我当然不会这样做.
这有可能吗?
感谢您的任何帮助.
//安布罗斯
这是我在getData.php中的代码,如果有帮助的话:
$conn = pg_connect("dbname=xxx user=xxxxxxx password=xxxxxxxx");
if (!$conn) {
die("Error in connection: " . pg_last_error());
}
$query =$_POST['query'];
$result = pg_query($query);
if (!$result) {
echo "Problem with query " . $query . "
";
echo pg_last_error();
exit();
}
else{
if(empty($result)){
echo"Tom";
}
else{
echo "
$i=0;
while ($i < pg_num_fields($result))
{
$fieldName = pg_field_name($result, $i);
echo '
' . $fieldName . '';$i = $i + 1;
}
echo '
';while($row = pg_fetch_assoc($result)) {
echo "
";foreach ($row as $key => $value){
echo "
" . $value . "";}
echo "
";}
echo "
";}
}
解决方法:
好吧,如果我做对了,你想从DB获取一些数据到txt文件下载,对吧?
那么你要做的第一件事是用数据生成该文件,有几种方法可以做到这一点,但由于每次使用不同的数据可能会生成文件,恕我直言,你应该动态生成并提供它,并做到这一点您唯一需要做的就是创建一个单独的PHP脚本来获取数据,并为其设置正确的标题.
header("Content-type: text/plain"); //File type
header("Content-Disposition: attachment; filename=SomeFileName.txt"); //suggested file name
在此之后,只需使用打印出文本文件中所需的所有数据.例如.
header("Content-type: text/plain"); //File type
header("Content-Disposition: attachment; filename=SomeFileName.txt");
print "hey I'm a text file!";
会生成以下内容.
现在,如果你想使用JQuery,你就不能加载它,主要是因为根据浏览器的不同,文件可能会被渲染.
所以只需在不同的窗口中调用它.
$('#foo').attr({target: '_blank',
href : 'genfile.php'});
编辑:
我差点忘了…考虑改变你的PHP代码,它提示SQL注入,还有,直接在php输出html的不良做法,它使代码混乱,更好地创建一个对象,数组或其他什么,并将其传递给一个脚本,可以在其他地方显示它.
编辑2
从头顶开始,使用正确的标题创建一个print_text.php
print $_POST["print"];
然后在您的网页上制作一个隐藏的表格.
然后在你的按钮动作钩子这:
$('#print_data').val($("#where_ever_your_content_is").text());
$('#to_print').submit();
这将提交表单并在新窗口中打开,.php将生成一个文件,其中包含您传递的任何文本.
标签:jquery,php,html
来源: https://codeday.me/bug/20190623/1272974.html