我想:
单击下面显示的链接,并将值传递给JQUERY $ .get(我认为必须这样做),这应该可用于SQL片段,其中包含WHERE子句。< / p>
LINK
$sOutput .= '"<a href=\"#whatever?' .addslashes($aRow['id_cruise']) .'\" class=\"flip\">'.addslashes($aRow['from_country']).'</a>",';
当我点击链接时,您会看到Flip类。这确实打开了一个幻灯片面板,我在其中有一个div,它将在SQL查询与发送的值一起使用后填充:
JQUERY SNIPPET
<script type="text/javascript">
$(document).ready(function(){
$('a.flip').live('click',function(){
$(".panel").slideToggle("slow");
});
});
</script>
正如您所看到的,它使用LIVE功能,以便点击确实可以激活幻灯片打开。但是我需要最后一点,即发送值(id_cruise)的那个。当我将鼠标悬停在行上时,我可以看到ID的值发生了变化,这很好,但是我没有把它传递给代码片段并被SQL查询选中。
所以我可以看到,在链接中,我写“什么”,确实无关紧要,只要它有#符号。请注意,链接是服务器处理文件的一部分,而JQUERY位于用户可见页面文件中,它们位于两个不同的页面中。
从此处更新,包括现在来自JEFF的代码:
链接看起来如此:
$sOutput .= '"<a href=\"#id?' .addslashes($aRow['id_cruise']) .'\" class=\"flip\">'.addslashes($aRow['from_country']).'</a>",';
杰夫明智地指出应该有第三个文件从第二个JQUERY片段获取参数,返回它,第二个文件将传递给位于下方的第三个文件。第三个片段是将其转发到位于幻灯片内部的DIV盒中。
<script type="text/javascript">
$(document).ready(function(){
$('a.flip').live('click',function(){
$(".panel").slideToggle("slow");
DoSomethingWith(this.id);
});
});
</script>
<script type="text/javascript">
function DoSomethingWith(id) {
$.get("SendIdToDatabase.php", {idCruise: id}, AnotherFunction);
}
function AnotherFunction(str) {
$("#reviews").html(str);
}
</script>
其他贡献者表示可以将其合并并简化为:
$(function() {
$('a.flip').live('click',function() {
$('.panel').slideToggle(slow');
$('#reviews').load('SendIdToDatabase.php', {idCruise: this.id});
});
});
现在我创建将处理SQL请求的PHP代码(SendIdToDatabase.php)
<?php
$id_crucero = $_REQUEST['id_cruise']; //this is what I (hopefully) should get from the page
require ('mysqli_connect.php');
$sql ="SELECT description
FROM cruises
WHERE id_cruise
= '".$id_crucero."'";
$result = @mysql_query ($sql);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$reviews = ($row['description']);
echo "$reviews";
}
?>
并且从这里开始它应该回到第二个AJAX代码片段,它向面板转发(我已经重新开始“评论”并且它是一个DIV,而不是HTML)
但是某些链接必须在某些方面出现问题,而且价值未被通过或收到。
自12月1日起,价值仍然没有通过。我在PHP脚本中修改了一些文本,是的,它出现在面板内的DIV BOX中,但它没有显示出价值
答案 0 :(得分:2)
我相信你所寻找的是“这个”对象。在“this”对象中,您可以获取id属性。例如:
<script type="text/javascript">
$(document).ready(function(){
$('a.flip').live('click',function(){
$(".panel").slideToggle("slow");
DoSomethingWith(this.id);
});
});
</script>
获得id后,您可以将其传递给另一个使用Ajax进行处理的脚本: 例如:
<script type="text/javascript">
function DoSomethingWith(id) {
$.get("SendIdToDatabase.php", {idCruise: id}, AnotherFunction);
}
function AnotherFunction(str) {
$(".panel").html(str);
}
</script>
查看jQuery Get以获取有关发送“get”Ajax调用的文档。
您需要编写php脚本(SendIdToDatabase.php)以使用id执行任何操作。不要忘记在使用它之前从id中删除#Whatever。
至于为什么它需要是一个单独的脚本,您需要了解http请求的“断开连接”性质。 Here are some体面的解释和图表。