gpt4 book ai didi

php - 从 PHP 脚本获取变量到另一个文件中的 JQuery。没有 echo ?

转载 作者:可可西里 更新时间:2023-10-31 23:03:37 25 4
gpt4 key购买 nike

我需要一些帮助,了解如何将变量从另一个 PHP 脚本获取到我的 index.php 文件中的 JQuery。

在我的网页上,我可以搜索数据库,这是通过单击一个按钮来完成的,该按钮执行搜索并将结果显示在页面上的另一个 div 中。

网页的这一部分工作正常。

接下来我想做的是让另一个按钮能够下载包含我的查询结果的文本文件。结果在显示它的同一个 PHP 文件中计算。

我在 index.php 中的 JQuery 看起来像这样:

<script>
$(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.
});
});
</script>

当我使用 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 . "<br/>";
echo pg_last_error();
exit();

}
else{
if(empty($result)){
echo"Tom";
}
else{
echo "<table class='resultTable'><tr>";
$i=0;
while ($i < pg_num_fields($result))
{
$fieldName = pg_field_name($result, $i);
echo '<td>' . $fieldName . '</td>';
$i = $i + 1;
}
echo '</tr>';

while($row = pg_fetch_assoc($result)) {
echo "<tr>";
foreach ($row as $key => $value){
echo "<td>" . $value . "</td>";
}
echo "</tr>";
}
echo "</table>";
}
}

最佳答案

好吧,如果我没看错,你想从数据库中获取一些数据到一个 txt 文件中进行下载,对吧?

那么您要做的第一件事就是生成包含数据的文件,有多种方法可以做到这一点,但是由于每次生成的文件都可能包含不同的数据,恕我直言,您应该即时生成并提供它,并且为此,您唯一需要做的就是创建一个单独的 php 脚本来获取数据,并为其设置适当的 header 。

   header("Content-type: text/plain"); //File type
header("Content-Disposition: attachment; filename=SomeFileName.txt"); //suggested file name

在此之后,只需使用打印出文本文件中所需的所有数据。例如。

<?php
header("Content-type: text/plain"); //File type
header("Content-Disposition: attachment; filename=SomeFileName.txt");
print "hey I'm a text file!";

将生成以下内容。

enter image description here

enter image description here

enter image description here

现在如果你想使用 JQuery,你不能只加载它,主要是因为根据浏览器的不同,文件可能会被渲染。

所以只需在不同的窗口中调用它即可。

$('#foo').attr({target: '_blank', 
href : 'genfile.php'});

编辑:我差点忘了...考虑更改您的 php 代码,它对 SQL 注入(inject)的提示,还有,直接在 php 上输出 html 的不良做法,它会使代码困惑,最好创建一个对象、数组或其他任何东西并将其传递给将其显示在其他地方的脚本。

编辑 2从我的头顶开始,创建一个带有正确标题的 print_text.php 和

print $_POST["print"];

然后在你的网页中做一个隐藏的表单。

<form id="to_print" action="print_text.php" method="post" target="_blank">
<input id="print_data" name="parameter" type="hidden" value="None">
</form>

然后在你的按钮操作中勾选这个:

$('#print_data').val($("#where_ever_your_content_is").text());
$('#to_print').submit();

这将提交表单并在新窗口中打开它,.php 将生成一个包含您传递给它的任何文本的文件。

关于php - 从 PHP 脚本获取变量到另一个文件中的 JQuery。没有 echo ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811963/

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