将php查询深层链接到数据库

时间:2015-05-29 21:25:46

标签: javascript php

当我想要回溯到某个涉及查询我的数据库的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("."&#34"."#txtHint"."&#34".")' href="."'php/getdaimler.php?q=".$row['Program']."'"."rel="."'address:/Daimler/".$row['Program']."'>". $row['Program']. "</a></li><br>";

此外,当触发多个链接时,它会使我的页面变慢。 如果有更好的功能或方法可以使用它会很棒。 我很感激你的回答。

1 个答案:

答案 0 :(得分:0)

发布的jQuery代码无法像这样工作。首先,在html代码中使用内联事件处理程序(onclick)。

echo "<li><a onclick='loadload("."&#34"."#txtHint"."&#34".")' href="."'php/getdaimler.php?q=".$row['Program']."'"."rel="."'address:/Daimler/".$row['Program']."'>". $row['Program']. "</a></li><br>";

您调用的方法是loadload,参数是&#34#txtHint&#34,它用作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,但它可能是一个起点。