gpt4 book ai didi

javascript - 如何在不刷新页面的情况下从php中的sql server数据库中获取数据

转载 作者:行者123 更新时间:2023-11-29 10:09:10 26 4
gpt4 key购买 nike

我正在尝试从数据库中获取一些数据。我创建了一个位于 functions.php 中的函数返回值的文件。在另一个页面上,我创建了一个变量并获取了该值。我正在尝试使用 onkey检查数据库,但后来我意识到我需要知道票的数量,即使他们不输入任何内容。

函数如下:

函数.php

function is_ticket_able($conn){


$query = "select number_of_tickets from [dbo].[TICKETS] " ;


$stmt = sqlsrv_query($conn, $query);


while ($row = sqlsrv_fetch_array($stmt)) {
$amount_of_tickets = $row['number_of_tickets'];

}

return $amount_of_tickets;

}

而且,我正在尝试检查数据库(不刷新页面)并获取此页面上的值:

application.php

$amount_of_tickets = is_ticket_able($conn);

然后,我只检查 $amount_of_tickets不是 0 或 1。因为如果是 1,则必须更改某些内容。

我正在这样做(在 application.php 中):

if($amount_of_tickets !=0){
//show the form and let them apply for tickets.

//also
if($amount_of_tickets == 1){
//just let them apply for one ticket.
}
}

编辑:我看到 AJAX 是正确的选择,但我对它的使用感到很困惑。

更新:

函数.php

function is_ticket_able($conn){


$query = "select number_of_tickets from [dbo].[TICKETS_LKUP] " ;


$stmt = sqlsrv_query($conn, $query);


while ($row = sqlsrv_fetch_array($stmt)) {


$ticket = $row['number_of_tickets'];

}

return $ticket;
}

应用程序.php

$amount_of_tickets = is_ticket_able($conn);

<script type="text/javascript">
var global_isTicketAble = 0;

checkTicket();

function checkTicket()
{
$.ajax(
{
url: "application.php",
method: 'GET',
dataType: 'text',
async: true,
success: function( text )
{
global_isTicketAble = text;
alert(global_isTicketAble);
if( global_isTicketAble == 0 ){
window.location.replace("http://www.google.com");
}
setTimeout( checkTicket, 5000 ); // check every 5 sec
}
});
}



</script>

所以,现在的问题是,当我 alert(global_isTicketAble);它不会提醒数据库中的值,但会提醒 application.php 中的所有内容...Help plzzz

最佳答案

服务器端

假设您需要定期检查 $amount_of_tickets 并且可以将其计算到 application.php 中,在该文件中您将拥有

<?php

// $conn is defined and set somewhere

$amount_of_tickets = is_ticket_able($conn);

echo $amount_of_tickets;
exit(0);
?>

这样,当使用简单的 GET 请求调用脚本时,值将作为简单文本在响应中返回。


客户端

ajax 是您想要在不重新加载页面的情况下更新信息的方式。

下面只是一个简单的示例(使用 jQuery),可以对其进行扩展以满足您的需要。

下面的代码是一个 JavaScript 片段。一个全局变量用于存储值(应该避免使用全局变量,但这只是为了示例的目的)

然后调用函数并从 function.php 脚本中获取更新值。

函数 -prior termination- 安排自身(使用 setTimeout)在给定的毫秒数后重新调用(以重复获取值过程)。

var global_isTicketAble = 0;

checkTicket();

function checkTicket()
{
$.ajax(
{
url: "application.php",
method: 'GET',
dataType: 'text',
async: true,
success: function( text )
{
global_isTicketAble = text;
// eventually do something here
// with the value just fetched
// (ex. update the data displayed)

setTimeout( checkTicket, 5000 ); // check every 5 sec
}
}
}

请注意 $.ajax() 发送请求但不等待响应(因为 async 设置为 true)。收到请求后,将执行指定为 success 的函数。

可以在此处找到完整的 jQuery ajax 函数文档

http://api.jquery.com/jquery.ajax/

关于javascript - 如何在不刷新页面的情况下从php中的sql server数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774508/

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