0

在过去的几天里,我一直在研究一个 .hover 脚本,该脚本将数据发布到 php 脚本,然后从数据库中检索相关数据。

将 id 数据发布到 details.inc.php 页面工作正常。脚本中的警报会正确检索并显示数据。

当我尝试将数据包含在 div 中时出现问题,似乎没有任何反应。Firefox show 是要执行和检索正确 id 信息的脚本。我不知道从哪里来。我已经尽我所能,但我对java的理解有限感谢您提前提供的任何帮助。

鼠标悬停函数执行并从图像中检索 id

<img src="#" class="latest"  id="id_retrieved_from_DB">

然后通过 jquery 和 ajax 传递 id,从 details.inc.php 中检索链接到 id 的数据,然后检索到的数据应包含在“详细信息”div 中

<script type="text/javascript">
    //Mouse over
    $(function(){
        $('.latest').hover(function() {
            id = $(this).attr('id');
            $.ajax({
        cache: false,
                url: "details.inc.php",
                data: 'hovered_id='+id,
                success:function(data){

                alert(data);//showing data correctly

                //not working here
        $("#details").load('details.inc.php', data);
                }
            });
return false;
        }
      });
</script>

详细信息.inc.php

<?php require_once('../../Connections/userauthentication_conn.php'); ?>
<?php 
require_once('../../includes/session_remap.inc');
require_once('../../includes/tNG_functions.inc.php');
?>

<?php
$KTColParam1_rsDetails = "0";
if (isset($_GET["hovered_id"])) {
  $KTColParam1_rsDetails = (get_magic_quotes_gpc()) ? $_GET["hovered_id"] : addslashes($_GET["hovered_id"]);
}
mysql_select_db($database_userauthentication_conn, $userauthentication_conn);
$query_rsDetails = sprintf("SELECT tbl_entries.id_ent, tbl_entries.country_ent, tbl_entries.date_ent, tbl_entries.title_ent, tbl_entries.subject_ent, tbl_entries.description_ent, tbl_entries.image_ent, tbl_entries.url_ent FROM tbl_entries WHERE (tbl_entries.id_ent=%s) ORDER BY tbl_entries.date_ent DESC ", $KTColParam1_rsDetails);
$rsDetails = mysql_query($query_rsDetails, $userauthentication_conn) or die(mysql_error());
$row_rsDetails = mysql_fetch_assoc($rsDetails);
$totalRows_rsDetails = mysql_num_rows($rsDetails);
?>
<!-- Details -->
<a href="<?php echo $row_rsDetails['url_ent']; ?>" title="Go to <?php echo $row_rsDetails['title_ent']; ?>">
<?php
    //show if file exists
    if (file_exists("../../images/entries/" . $row_rsDetails['id_ent'] . "__img.jpg")) {
  ?>
  <img src="../../images/entries/<?php echo $row_rsDetails['id_ent']; ?>__img.jpg" width="70" height="70">
  <?php
    }
    //end show if file exists
  ?>
<p class="seriesName"><?php echo $row_rsDetails['subject_ent']; ?></p>
<h4 class="programTitle"><?php echo $row_rsDetails['title_ent']; ?></h4>
</a>
<!-- End -->
<?php
mysql_free_result($rsDetails);
?>
4

2 回答 2

1

你为什么要做第二个ajax调用?

如果您已经有 javascript 中可用的数据,则可以替换:

$("#details").load('details.inc.php', data);

和:

$("#details").html(data);
于 2013-03-13T21:44:18.637 回答
0

如果 $("#details") 在脚本页面中并且这是您希望显示结果的 div,则只能使用加载:

//Mouse over
var id = $(this).attr('id');
$("#details").load('details.inc.php', 'hovered_id='+id, function(data){alert(data);});

或者你可以使用 $.get()

Jquery 手册 如果数据作为对象提供,则使用 POST 方法;否则,假定为 GET。

而您的 PHP 脚本使用 get。

于 2013-03-13T21:58:40.850 回答