我有一个值列表,当超链接"onclick"时,这些值将在下面的数组中显示关联的记录集。
通过PHP,我可以使用连接表值的数据集。现在我需要将该数据集链接到onclick事件。
通过我的研究,有几种方法可以做到这一点:iFrame(似乎不推荐);JSON/AAJAX(我不知道的语言,我的其他数据都没有使用这种结构,但有可能使用直接的PHP吗?);
带有相关函数的$_GET变量似乎是可行的,尽管我很难获得正确的语法来创建响应。这会使用过滤功能吗?
本质上:$row_artistrecordset['artist']=$row_getartists['artit']。如果我能把代码建立在这个匹配结构的基础上,那么它将有足够的通用性,可以在其他页面中使用。
这是我迄今为止的代码:
<?php
mysql_select_db($database_connectmysql, $connectmysql);
$query_artistrecordset = "SELECT * FROM artists ORDER BY artist ASC";
$artistrecordset = mysql_query($query_artistrecordset, $connectmysql) or die(mysql_error());
$row_artistrecordset = mysql_fetch_assoc($artistrecordset);
$totalRows_artistrecordset = mysql_num_rows($artistrecordset);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>artistindex</title>
<link href="exhibitstyles/exhibitstyles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php include_once("exhibitstyles/header.php");?>
<div id="singlemid" class="paragraph" style="text-align:center">
<div id="artistlist">
<?php do { ?>
<a href=javascript:function_$_GET(artistindex.php?[$row_artistrecordset['artist']]);>; title="artistlink" class="list"><?php echo $row_artistrecordset['artist']; ?></a> |
<?php } while ($row_artistrecordset = mysql_fetch_assoc($artistrecordset)); ?>
</div>
<br />
<div id="searchresults">
function_$_GET(artistindex.php?[$row_artistrecordset['artist']]) {
$.post("artistindex.php",'v=.$row_getartists['artist'].' + value, function $_GET(artistindex.php?[$row_artistrecordset['artist']]) {
$query_getartists.html().trigger("create");
});
}
<?php
mysql_select_db($database_connectmysql, $connectmysql);
echo <a href=javascript:function_$_GET(artistindex.php?[$row_artistrecordset['artist']]);>.$row_getartists['artist'].;
$query_getartists = "SELECT * FROM artists WHERE artist = '".$row_artistrecordset['artist']."' ORDER BY artist ASC";
$getartists = mysql_query($query_getartists, $connectmysql) or die(mysql_error());
while ($row_getartists = mysql_fetch_assoc($getartists)) {
echo $row_getartists['artist'], "<br>";
echo $row_getartists['website'], "<br>";
echo $row_getartists['artist_statement'], "<br>";
echo $row_getartists['image'], "<br>";
$artistlink = $row_getartists['artist'];
$query_getseries = "SELECT * FROM series WHERE artist='$artistlink' ORDER BY exhibition ASC";
$getseries = mysql_query($query_getseries, $connectmysql) or die(mysql_error());
while ($row_getseries = mysql_fetch_assoc($getseries)) {
echo $row_getseries['series'], "<br>";
echo $row_getseries['exhibition'], "<br>";
echo $row_getseries['series_statement'], "<br>";
echo $row_getseries['image'], "<br>";
$serieslink = $row_getseries['series'];
$query_getpieces = "SELECT * FROM pieces WHERE series='$serieslink'";
$getpieces = mysql_query($query_getpieces, $connectmysql) or die(mysql_error());
while ($row_getpieces = mysql_fetch_assoc($getpieces)) {
echo $row_getpieces['piece'], "<br>";
echo $row_getpieces['category'], "<br>";
echo $row_getpieces['dimensions'], "<br>";
echo $row_getpieces['price'], "<br>";
echo $row_getpieces['description'], "<br>";
echo $row_getpieces['image'], "<br>";
}
}
?>
</div>
</div>
</body>
</html>
<?php
mysql_free_result($getartists);
mysql_free_result($getseries);
mysql_free_result($getpieces);
}
?>
您希望在用户单击某个内容时执行操作。假设您有一个值表,并且希望获得有关值的进一步信息。html可能看起来像这样:
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width=30% valign=top><span onclick="alert('Value 1 was clicked');">1</span></td>
<td width=70% valign=top>Description of Value 1</td>
</tr>
<tr>
<td width=30% valign=top><span onclick="alert('Value 2 was clicked');">1</span></td>
<td width=70% valign=top>Description of Value 2</td>
</tr>
</table>
这里将发生的情况是,当您单击表中最左边的两列中的任何一列时,都会调用javascript alert()函数。
您也可以将信息传递给您自己的脚本,如下所示:
<script>
function myOwnAlert(value) {
alert(value);
}
</script>
<div id="myTable">
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width=30% valign=top><span onclick="myOwnAlert('Value 1 was clicked');">1</span></td>
<td width=70% valign=top>Description of Value 1</td>
</tr>
<tr>
<td width=30% valign=top><span onclick="myOwnAlert('Value 2 was clicked');">1</span></td>
<td width=70% valign=top>Description of Value 2</td>
</tr>
</table>
</div>
净效果是一样的,显示了一条消息。但是,您也可以使用jQuery动态更新表。网上有很多关于jQuery的教程。你基本上会得到一个javascript函数,比如:
<script>
function myOwnAlert(value) {
$.post("getnewtable.php",'v=' + value, function(data) {
$("#myTable").html().trigger("create");
});
}
</script>
这将导致表的内容被替换为getnewtable.php脚本的输出。
注意:这并不是使用HTML或jQuery的主要示例,只是一个非常小的教程。