- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在进行我的第一个 AJAX 项目,并且在概念上已经规划了大部分内容,但由于我缺乏语法知识而被搁置了。我想我的结构/功能逻辑也可能略有偏差。
我正在寻找一些指导,尽管是对教程的引用或对我遗漏或忽略的内容的任何更正。
profile.php:这是具有可供点击的实际缩略图图标和 $.post
功能的页面:
这是拇指结构。
当点击拇指时,我需要发送评论的id?我知道我需要计算它以某种方式被点击并将其发送到 $.在此页面底部的帖子区域,我还需要在拇指计数器 div 中放置某种 php 变量,以便在 $.帖子确认它已被点击。
<div id="thumb_holder">
<div id="thumb_report">
<a href="mailto:info@cysticlife.org">
report
</a>
</div>
<div id="thumb_counter">
+1
</div>
<div id="thumb_thumb">
<?php $comment_id = $result['id'];?>
<a class="myButtonLink" href="<?php echo $comment_id; ?>"></a>
</div>
</div>
这是$.post
函数
这应该发送评论的id?但最肯定的是应该发送一条拇指链接被点击的记录,并以某种方式将它发送到我与数据库对话的 php 页面。
<script>
$.ajax({
type: 'POST',
url:" http://www.cysticlife.org/thumbs.php,"
data: <?php echo $comment_id; ?>,
success: success
dataType: dataType
});
</script>
thumbs.php:是在单击拇指时发送递增请求的页面,然后反过来告诉数据库存储一个 clikc,我在这个页面上还没有任何东西。但我假设它将通过来自其他页面的 $.post
函数传递点击记录,从语法上我不知道它是如何工作的,然后通过插入查询将拍摄它记录到数据库。
这是数据库中的表的内容
我有三行:一个自动递增的id
。一个 comment_id
,这样它就知道哪个评论被“点赞”了,最后一个 likes
来跟踪竖起大拇指的数量。
最佳答案
至少你已经有了一个好的开始,还有一些错误。首先,您可能需要习惯一些基本原则:
1) 如何创建点击事件
首先是按钮,我插入了“2”作为 href。
<a class="myButtonLink" href="2">Vote Up!</a>
编辑
:万一 JS 被禁用,这将是一个更好的选择:
<a class="myButtonLink" href="voteup.php?id=2" id="2">Vote Up!</a>
然后是 JS:
$('.myButtonLink').click(function(e) {
e.preventDefault();
alert('the button has been clicked!');
});
e
表示事件,所以我们在提交后做的第一件事就是取消默认操作(重定向到'2')。然后我们提醒该按钮已被单击。如果这可行,我们可以进入下一步。
2) 从点击的链接中获取 ID 值。
在点击函数中,我们可以使用$(this)
,它代表被点击的元素。 jQuery 为我们提供了一组函数来从给定元素获取属性,这正是我们所需要的。
$('.myButtonLink').click(function(e) {
e.preventDefault();
var comment_id = $(this).attr('id');
alert('We are upvoting comment with ID ' + comment_id);
});
当一切顺利时,这应该提醒“我们正在使用 ID 2 对评论进行投票”。那么,继续下一步!
3) 发送请求
如果您刚刚开始使用 ajax/jquery,这可能是更难的一步。您必须知道的是,您发送的数据可以是 url 字符串(param=foo&bar=test)或 javascript 数组。在大多数情况下,您将使用 url 字符串,因为您正在请求一个文件。还要确保使用相关链接(“ajax/upVote.php”而不是“http://www.mysite.com/ajax/upVote.php”)。所以这里有一些测试代码:
$('.myButtonLink').click(function(e) {
e.preventDefault();
var comment_id = $(this).attr('id');
$.ajax({
type: 'POST',
url: 'thumbs.php',
data: 'comment_id=' + comment_id,
success: function(msg) { alert(msg); }
});
数据类型是自动检测的,例如,您可以在 JSON 响应(可以是具有状态和消息响应的数组)或纯文本之间进行选择。让我们保持简单,从纯文本开始。
此脚本所做的是调用 thumbs.php 并发送一个 $_POST 值 ($_POST['comment_id'] = 2) 以及此请求。在 thumbs.php 上,您现在可以执行 PHP 部分:
1) checking if the comment_id is valid
2) upvoting the comment
3) print the current amount of votes back to the screen (in thumbs.php)
如果您将票数打印回屏幕,我给您的最后一个脚本将提醒一个包含票数的消息框。
4) 使用 JSON 返回数据数组
为了在您的屏幕上获得正确的响应,您可以考虑发回一个数组,例如:
$arr = array(
'result' => 'success', // or 'error'
'msg' => 'Error messag' // or: the amount of votes
)
然后您可以使用 php 函数 json_encode($arr)
对其进行编码。然后您将能够通过使用此脚本获得更体面的响应:
$('.myButtonLink').click(function(e) {
e.preventDefault();
var comment_id = $(this).attr('id');
$.ajax({
type: 'POST',
url: 'thumbs.php',
data: 'comment_id=' + comment_id,
success: function(data) {
if(data.result == "error") {
alert(data.msg);
} else {
alert('Your vote has been counted');
$('#numvotes').html(data.msg);
}
}
});
如您所见,我们使用的是 (data) 而不是 (msg),因为我们要发回数据集。 PHP中的数组($arr['result'])可以读作data.result。首先,我们检查结果是什么(错误或成功),如果是错误,我们会提醒发送的消息(错误的数据库连接、错误的评论 ID、无法计算投票等)结果如果成功,我们会提醒投票已被统计并将(更新的)票数放入 ID 为“numvotes”的 div/span/other 元素中。
希望这对您有所帮助 ;-)
//编辑:我注意到代码标签有一些错误。修复了“手册”的第一部分。
关于php - 寻找有关实现 AJAX 项目的语法指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981859/
有人有 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
我是一名优秀的程序员,十分优秀!