Javascript 使用link onClick()切换传递给函数的值,以对数据库结果顺序ASC或DESC进行排序

Javascript 使用link onClick()切换传递给函数的值,以对数据库结果顺序ASC或DESC进行排序,javascript,php,mysql,Javascript,Php,Mysql,我有一个register.php页面,它从数据库中提取数据。我在我的php页面上列出了结果,并从列标题创建了链接,用于对列进行排序 链接看起来像这样 <div class='col-sm-12 day-heading'> <div class="row"> <div class="col-sm-2"><a id="student_forename" onClick="showUser('student_forename','ASC')"&

我有一个register.php页面,它从数据库中提取数据。我在我的php页面上列出了结果,并从列标题创建了链接,用于对列进行排序

链接看起来像这样

<div class='col-sm-12 day-heading'>
    <div class="row">
    <div class="col-sm-2"><a id="student_forename" onClick="showUser('student_forename','ASC')">Forename</a></div>
    <div class="col-sm-2"><a id="student_surname" onClick="showUser('student_surname','ASC')">Surname</a></div>
    <div class="col-sm-2"><a id="club" onClick="showUser('club','ASC')">Club</a></div>
    <div class="col-sm-3"><a id="student_instructor" onClick="showUser('student_instructor','ASC')">Instructor</a></div>
    <div class="col-sm-2"><a id="date_awarded" onClick="showUser('date_awarded','ASC')">Date</a></div>
    <div class="col-sm-1"><a id="student_age" onClick="showUser('student_age','ASC')">Age</a></div>         
</div>
例如,应该用从onClick链接传递的值替换test

const but = document.getElementById(student_forename);
但是我在上面的代码中是否正确使用了test

同样的

if(but.getAttribute("onClick") === "showUser(test,'DESC')")
测试应替换为测试值,而不是设置为测试

希望有意义:

肮脏的方法: 您可以将类添加到标记中 初始化class=asc,然后单击u检查类是否存在,并设置let order=asc,然后从标记中删除类 接下来单击检查类是否存在,如果不存在,则设置let order=desc和add class=asc。 您可以轻松切换类和变量 在这种情况下,您不必将order参数传递给您的函数 u还可以切换onClick函数:

使用JS 你可以这样写:

在函数体的后面,你想做什么就做什么:
我添加了2 console.log以检查是否将值传递给函数

u可以尝试以下方法:感谢您的建议,不幸的是,该线程中使用的方法不适合我的问题。第一步应该是确定哪里出了问题。您已经用JS、PHP和MySQL标记了您的问题,但没有提供任何PHP或MySQL代码。您好@NicoHaase,我很抱歉,我刚刚更新了代码,因为我收到了帮助,正在整理问题。代码被更改为专门关注问题所在的部分,而不是进一步混淆:谢谢oleevier,切换位看起来很有希望,我该如何实现它?我现在有进展了。谢谢:它只适用于一个链接,但我有多个链接。我知道如何在头脑中解决它,但对js的了解还不够,无法正确实现它。如果我想在函数中使用test的值来填充上面的代码,就像这样。code const but=document.getElementById'test';ifbut.getAttributeonClick===showUser'test','DESC'{but.setAttributeonClick,showUser'test','ASC';}其他{but.setAttributeonClick,showUser'test','DESC';}codevar sort=test;var顺序=ASC;不知道我是否明白你的意思,因为英语不是我的母语,就像你以前做的那样,你的函数没有改变,只是参数你发送给函数改变//你可以在if/else块后复制你的函数,然后应该重新运行:函数showUser test,顺序/u可以使用你以前写的代码,只需添加函数的开头来改变按钮的属性` showUser${test},'DESC'`尝试使用backtics而不是${var}/我不确定它是否能工作,但你可以试试
const but = document.getElementById(student_forename);
if(but.getAttribute("onClick") === "showUser(test,'DESC')")
<a onClick="showUser('student_forename','ASC')">Forename</a>
<a onClick="showUser('student_forename','DESC')">Forename</a>
<button id="but" class="ASC" onClick="showUser('student_forename','DESC')">BUTTON
</button>
<script>
    function showUser(test, order)
    {
        const but = document.getElementById('but');
        if(but.getAttribute("onClick") === "showUser('student_forename','DESC')") 
        {
            but.setAttribute("onClick","showUser('student_forename','ASC')");
        }
        else
        {
            but.setAttribute("onClick","showUser('student_forename','DESC')");
        }
        order = order;
        test = test;
        console.log(`order= ${order}`);
        console.log(`test= ${test}`);

    }
</script>