如何使用jquery查看弹出框中的许多数据?

时间:2016-04-19 10:36:41

标签: javascript php jquery mysql

我的问题是,在我进一步研究它之前,我的问题是:我怎样才能使这项工作变得更加容易和优于我所做的工作?

我有一个包含大量数据的数据库,我在表中查看所有这些数据。每个<td>都包含<div title="">,因此每个<td>鼠标悬停的所有人都可以看到有关该数据项的更多信息。麻烦的是,它只能作为移动设备上的表格查看。要为新页面创建超链接是很困难的,因为这会使用户远离<table>,而不仅仅是那个数据信息。所以我想使用jQuery UI。并且正在阅读&#34;基本对话&#34;选项。我试着把它放到我的脚本中,但我发现我的数据太多了。所以我创建了一个名为jq_scripts.php的文件。在那里,我有一个脚本来创建对话框选项。但首先我在标题中包含它:

<script src=\"//code.jquery.com/jquery-1.10.2.js\"></script>
<script src=\"//code.jquery.com/ui/1.11.4/jquery-ui.js\"></script>
<script src=\"jq_scripts.php\" type=\"text/javascript\"></script>

然后在脚本中我把它作为标准:

  $(function() {
    $( "#dialog" ).dialog({
      autoOpen: false,
    });

    $( "#opener" ).click(function() {
      $( "#dialog" ).dialog( "open" );
    });

  });

但是由于我有很多不同的对话框,我需要一个#id来为每个按钮提供唯一的信息,所以这就是我作为一个脚本所拥有的:

echo "\$(function() {\n";
$result = mysqli_query($con, "SELECT * FROM $database WHERE type = 1");
$num = mysqli_num_rows($result);
if(!$result) {
    die('Invalid query: ' . mysqli_error($con));
}
while($row = mysqli_fetch_array($result)) {
    $id = $row['id'];
    foreach($abo as $abo_vis) {
        $abo_vis = strtolower(str_replace(' ', '', $abo_vis));
        echo "  \$( \"#dialog_" . $abo_vis . "_" . $id . "\" ).dialog({\n";
        echo "    autoOpen: false,\n";
        echo "  });\n\n";
        echo "  \$( \"#opener_" . $abo_vis . "_" . $id . "\" ).click(function() {\n";
        echo "    \$( \"#dialog_" . $abo_vis . "_" . $id . "\" ).dialog( \"open\" );\n";
        echo "  });\n\n";
    }   
}
echo "});\n";

这会创建一个包含12583行的查看文件!!!

<td>我已将此<a href="#" id="opener_<?php echo $abo_vis; ?>_<?php echo $id; ?>">_DATA_</a>放在查看文件的底部,我创建了这个:

echo "<div id=\"dialog_" . $abo_vis . "_" . $id . "\" title=\"" . $abo_vis . "\">\n";
echo "<p>" . $dialog_info[$id] . "</p></div>\n\n";

这会使此文件比需要的时间长很多。最重要的是,我的<a href="#">都没有。实际上,<div id="dialog...">实际上显示了,而在演示中则隐藏了它。

1 个答案:

答案 0 :(得分:1)

也许您的问题是您调用它的方式,而不是使用ID使用类:

echo "<div class=\"dialog_" . $abo_vis . "_" . $id . "\" title=\"" . $abo_vis . "\">\n";