- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新了页面标题。
这是在 Leaderboard.php 上。你可以看到我当前在 tbody 中进行了 PHP 调用。
<!-- The Leaderboard Table -->
<table id="tblData" class="table table-hover leaderboard-table target">
<thead>
<tr>
<th class="hidden-phone">Rank</th>
<th>Sales Person</th>
<th>Total Points</th>
</tr>
</thead>
<tbody id="leaderboardresults">
<?php $getLeaderboard->getTable($_GET['competitionId']); ?>
</tbody>
</table>
<!-- The Leaderboard Table END -->
这是在 API/getLeaderboard.php 上。这就是 getTable 函数所在的位置。
<?php
class getLeaderboard {
public function getTable($competitionId) {
//I run the SQL query and echo out some PHP
}
这是在 Leaderboard.php 上。
function loadLeaderboard() {
var competitionId = $("body").attr("data-competitionId");
var url = "api/getLeaderboard.php?competitionId=" + competitionId;
$.get(url, function(data) {
//$("#leaderboardresults").html(data);
});
}
这也在 Leaderboard.php 上。另一个 AJAX 调用执行 AJAX get(这工作完美),并且应该在成功时重新加载排行榜。
$(function() {
//this works (/James)
$(".navVisible").click(function() {
var Competition = $("body").attr("data-competitionId");
var Activity = $(this).attr("data-activity");
$.post("registerresults.php", { data: Activity, competitionId: Competition })
.done(function(data) {
loadLeaderboard();
});
});
loadLeaderboard();
});
这是 getLeaderboardTable.php
<?php
include "common/common.php";
include "api/getLeaderboard.php";
$competitionId = $_GET['competitionId'];
$getLeaderboard->getTable($competitionId);
?>
最佳答案
据我了解,您需要以下内容 -
您有一个页面(页面 A)在特定时间调用 ajax 函数,并且应该加载结果。
您有一个 php 函数,可以在传递参数“competitionId”时提供这些结果。
你做错的是你在同一页面中有1和2,没有任何 Controller 。你需要做的是,移动
<?php $getLeaderboard->getTable($_GET['competitionId']); ?>
进入另一个页面,输入“getLeaderboardTables.php”。然后修改你的html页面如下:
<table id="leaderboardresults">
<tbody>
</tbody>
</table>
然后你的ajax函数如下,它将数据插入到由idleaderboardresults标识的数据保存表中:
function loadLeaderboard() {
var competitionId = $("body").attr("data-competitionId");
var url = "api/getLeaderboardTables.php?competitionId=" + competitionId;
$.get(url, function(data) {
$('#leaderboardresults tr:last').after(data);
});
}
.after 确保将新行追加到表的末尾。如果您想替换它们,请先调用 $("#leaderboardresults").empty();
。
从技术上讲,您不需要将函数移动到不同的 PHP 页面;您可以按照 DevZero 的建议进行操作,并拥有一个基于 switch case 的 Controller ,以便可以使用相同的页面。
您编辑问题后,我有以下评论 -
您的表 ID 必须是排行榜结果,而不是正文 ID。如果您想将表主体保留为 tblData,请按如下方式编辑 ajax 脚本
$.get(url, 函数(数据) { $('#tblData tr:last').after(data); });
最重要的是,您既没有使用像 DevZero 建议的 Controller ,也没有将 php 数据获取移动到不同的页面。您需要做的是:
选项 1 - 正如我上面提到的,创建一个名为 getLeaderboardTables.php 的新页面,在那里放置数据库连接,包含类,然后添加此行
<?php $getLeaderboard->getTable($_GET['competitionId']); ?>
因此,当从浏览器调用这个新页面时,应该只输出行,而不输出其他内容。然后调用此 URL 并传递竞赛 ID,如我之前提到的。
选项 2 - 不要创建新页面,但在现有页面中,有一个 Controller ,就像 DevZero 所说,在类包含之后将以下内容添加到 html/php 的最顶部,如下所示:
switch ($_GET['action']) {
case 'ajax':
$getLeaderboard->getTable($_GET['competitionId']); //your specific function
break;
default:
?>
Current html/php page content will come here in its entireity
<?php
}
并将ajax调用修改为:
var url = "api/getLeaderboard.php?action=ajax&competitionId=" + competitionId;
基本思想是,AJAX不能用来直接调用PHP函数。 AJAX 可用于调用 PHP 页面,并向其传递一些参数,后者又调用 PHP 函数或方法来生成一些输出,并将该输出打印回浏览器窗口。 AJAX 要做的就是从 php 页面复制输出,并将其存储在 javascript 变量中以执行您想要的操作。因此,您传递给 ajax 函数的 url 必须仅加载您想要动态更新的内容。这里将 AJAX 想象成一个隐形人,他获取您的 url,打开一个隐形的浏览器窗口,粘贴该链接,等待页面加载,复制页面的输出并将其存储在您的变量中。
您正在做的是,您正在通过 AJAX 加载整个页面,而不仅仅是您想要动态更新的输出。
关于php - 使用 AJAX 调用特定 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18297251/
有人有 Comet 应用程序 .net 的任何样本吗? 我需要一个示例如何在服务器中保持客户端的连接? 最佳答案 这里也有一些不错的: http://www.frozenmountain.com/we
我想知道是否有 Yii2 专家可以帮助我了解如何最好地使用 ajax 表单与 Yii ajax 验证相结合。我想我可以在不带您阅读我所有代码的情况下解释这个问题。 我正在处理一个促销代码输入表单,用户
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
f:ajax 和 a4j:ajax 标记之间有什么显着差异吗? 我知道 Richfaces 4 中的 a4j:ajax 基于 native f:ajax JSF2 标记,添加了一些 f:ajax 中未
我已经尝试过这样但无法获取数组列表。它返回“null” var data=[]; data[0] = '1'; data[1] = '2'; $.ajax({
在教程中可以看到 jQuery.ajax 和 $.ajax 喜欢这里 http://www.thekludge.com/form-auto-save-with-jquery-serialize/ jQ
过度使用 AJAX 会影响性能吗?在大型 Web 应用程序的上下文中,您如何处理 AJAX 请求以控制异步请求? 最佳答案 过度使用任何东西都会降低性能;在必要时使用 AJAX 将提高性能,特别是如果
似乎我无法使用 Ext.Ajax.request 进行跨域 ajax 调用。看起来 ScriptTag: True 没有任何效果。 这是我的代码: {
我正在使用 Bottle 微框架(但我怀疑我的问题来自它) 首先,如果我定义了一个从/test_redirect 到/x 的简单重定向,它会起作用。所以 Bottle redirect() 在简单的情
任何人都可以指出各种 AJAX 库的统一比较吗?我已经阅读了大约十几种不同的书,我即将开始一个项目,但我对自己是否已经探索了可能性的空间没有信心。 请注意,我不是在要求“我认为 XXX 很棒”——我正
似乎使用 AJAX 的站点和应用程序正在迅速增长。使用 AJAX 的主要原因之一可能是增强用户体验。我担心的是,仅仅因为项目可以使用 AJAX,并不意味着它应该。 可能是为了 UX,AJAX 向站点/
假设我有一个可以通过 Javascript 自定义的“报告”页面。假设我有可以更改的 start_date、end_date 和类型(“简单”或“完整”)。现在 我希望地址栏始终包含当前(自定义) V
我一直在阅读 Ajax 并且希望从 stackoverflow 社区看到我是否正确理解所有内容。 因此,正常的客户端服务器交互是用户在 url 中拉出 Web 浏览器类型,并将 HTTP 请求发送到服
这可能有点牵强,但让我们假设我们需要它以这种方式工作: 我在服务器的 web 根目录中有一个 index.html 文件。该文件中的 javascript 需要向/secure/ajax.php 发出
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 去年关闭。 Improve this
我希望ajax post成功进入主页。由于某种原因,我一直做错事。知道我应该做什么来解决这个问题吗? window.APP_ROOT_URL = ""; Ajax $.ajax({ url: '#{a
我在 2 个不同的函数中有 2 个 ajax 调用。我想用.click来调用这2个函数。 func1 将数据插入数据库,然后 func2 检索数据,所以我的问题是如何等到 func1 完全完成然后只执
我试图在单击按钮后禁用该按钮。我尝试过: $("#ajaxStart").click(function() { $("#ajaxStart").attr("disabled", true);
我试图在每个 Ajax 请求上显示加载动画/微调器 我的 application.js $(document).on("turbolinks:load", function() { window.
我正在显示使用jQplot监视数据的图形。 为了刷新保存该图的div,我每5秒调用一次ajax调用(请参见下面的JavaScript摘录)。 在服务器上,PHP脚本从数据库中检索数据。 成功后,将在5
我是一名优秀的程序员,十分优秀!