我有一个从数组中显示的名称列表(1-15行)。我希望管理员通过单击名为“链接”的超文本从列表中选择正确的名称。记录ID在数组中,我希望传递给被调用的脚本。
我发现这个javascript有效,除了我想要打印linkur.php页面(及其信息消息)。我知道它不会因为void(0)而打印,但无法确定所需的正确方法。
<a href="javascript:void(0);" onclick='$.get("linkur.php",{ rid: "<?php echo $k['id']; ?>", uid: "<?php echo $uid; ?>", } ,function(data){ $("#link<?php echo $k['id']; ?>").html(data); });'>Link</a>
此外,是否可以使用纯HTML进行超链接?除了传递数组值之外,超链接是直接的。
感谢任何想法。
卡尔
答案 0 :(得分:1)
我对你的要求感到有点困惑。您没有提到需要异步请求,但这正是您的代码使用jQuery库所做的事情。如果您不需要异步请求,并且想要查看结束页面,则只需构建常规链接:
<a href="linkur.php?rid=<?php print $rid; ?>&uid=<?php print $uid; ?>">Link</a>
这将在具有固定值而非变量的页面上呈现:
<a href="linkur.php?rid=123&uid=281">Link</a>
点击该链接后,您会将 rid = 123 和 uid = 281 传递给结束脚本,并在屏幕上看到它的输出。
如果需要异步加载此数据,则代码中只会添加少量内容。保留我们刚才引用的原始链接,但是为其添加一个类:
<a href="linkur.php?rid=123&uid=281" class="loadme">Link</a>
现在使用jQuery,我们可以捕获这些请求并在其他地方加载HTML:
$(function(){
// Intercept the click event of our links
$(".loadme").click(function(e){
// Prevent them from leaving the page
e.preventDefault();
// Fire off a request for their content
$.get($(this).attr("href"), function(data) {
// Load their content into a container on our page
$("#content-viewer").html(data);
}, "html");
});
});
请注意,我引用了#content-viewer
。你需要在你的页面上有这个地方:
<div id="content-viewer">I will show the content .loadme links!</div>
答案 1 :(得分:0)
至少可以说,你的方法有点笨拙。现在你需要在每个链接上都有javascript东西,而正确的方法是分别绑定函数。你可以这样做:
<a href="#" class="some_links" rel="<?php echo $k['id']; ?>" href="linkur.php?rid=<?php echo $k['id']; ?>&uid=<?php echo $uid; ?>">Link</a>
将输出到浏览器:
<a href="#" class="some_links" rel="123" href="linkur.php?rid=123&uid=456">Link</a>
在一个单独的Javascript文件中:
$('a.some_links').click(function() {
$("#link"+$(this).attr('rel')).load($(this).attr('href'));
return false;
});
如果我正确理解你的代码,这将完全相同 - 将linkur.php中的内容与传递的变量加载到#link+rid
元素。