php不同文件之间获取变量,从另一个文件中获取PHP脚本到JQuery的变量.没有回声?...

我需要一些帮助,如何从我的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!";

会生成以下内容.

7f19af4ad6cd16efe2a601779d9081f6.png

14a05b7c732ebea7c5bbb37e61e0bcd0.png

b9189ecd6755be3ec844dc113cd7c067.png

现在,如果你想使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值