当我想要回溯到某个涉及查询我的数据库的PHP脚本时,我一直遇到深层链接问题。 我认为发生的事情是,当一个链接需要一个更深层次的PHP脚本时,它不会对服务器进行回调。它只是在它使用相同的PHP脚本时使用,该脚本使用右后方或之后显示的链接。 这是我的JS功能:
function loadload(loc) {
$("document").ready(function(){
function loadURL(url) {
console.log("loadURL: " + url);
$(loc).load(url);
}
// Event handlers
$.address.init(function(event) {
console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
}).change(function(event) {
$(loc).load($('[rel=address:' + event.value + ']').attr('href'));
console.log("change");
})
$('a').click(function(){
loadURL($(this).attr('href'));
});
});
};
这是我的php回音线:
echo "<li><a onclick='loadload("."""."#txtHint".""".")' href="."'php/getdaimler.php?q=".$row['Program']."'"."rel="."'address:/Daimler/".$row['Program']."'>". $row['Program']. "</a></li><br>";
此外,当触发多个链接时,它会使我的页面变慢。 如果有更好的功能或方法可以使用它会很棒。 我很感激你的回答。
答案 0 :(得分:0)
发布的jQuery代码无法像这样工作。首先,在html代码中使用内联事件处理程序(onclick)。
echo "<li><a onclick='loadload("."""."#txtHint".""".")' href="."'php/getdaimler.php?q=".$row['Program']."'"."rel="."'address:/Daimler/".$row['Program']."'>". $row['Program']. "</a></li><br>";
您调用的方法是loadload
,参数是"#txtHint"
,它用作jQuery选择器,但永远不会匹配任何DOM元素。我最好的猜测是,您希望将服务器答案加载到具有id&#39; txtHint&#39;的元素,在这种情况下,选择器将是:#txtHint
。
现在到jQuery / javascript函数本身:
function loadload(loc) {
// this is wrong, you can not use the event handler for dom ready here...
$("document").ready(function(){
function loadURL(url) {
console.log("loadURL: " + url);
$(loc).load(url);
}
// Where does $.address come from?....
// Event handlers
$.address.init(function(event) {
console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
}).change(function(event) {
$(loc).load($('[rel=address:' + event.value + ']').attr('href'));
console.log("change");
})
// and here you'll define another click handler - inside the click handler
// will never be executed...
$('a').click(function(){
loadURL($(this).attr('href'));
});
});
};
要么使用内联事件处理程序,要么使用常规绑定逻辑,不要混用它。
变体a:内联事件处理程序
function loadload(loc,url) {
console.log("loadURL: " + url);
$(loc).load(url);
}
echo "<li><a onclick='loadload(\"#txtHint\",\"php/getdaimler.php?q=".$row['Program']."\")' href='php/getdaimler.php?q=".$row['Program']."' rel='address:/Daimler/".$row['Program']."'>". $row['Program']. "</a></li><br>";
变体b:一般绑定:
$("document").ready(function(){
$('a.loadload',function() {
$('#txtHint').load($(this).attr('href'));
});
});
echo "<li><a class='loadload' href='php/getdaimler.php?q=".$row['Program']."' rel='address:/Daimler/".$row['Program']."'>". $row['Program']. "</a></li><br>";
到目前为止您的javascript / html代码。说实话,我不知道这是否符合您的深层链接。问题,或者你谈到的db-query,但它可能是一个起点。