从数组中每次单击时更改href属性值

时间:2017-08-25 15:19:39

标签: php jquery arrays

我有这个正常的链接

<a href='#'>Click Me</a>

我有一个类似下面的数组

$values = ['a', 'b', 'c', 'd'];
$first = current($values);

我要做的是,每次点击链接时,属性值会更改为下一个数组值,从a到b到c到d如果结束,则再次 a , 取决于获取请求 $_GET['order'];  如何使用 JQuery PHP 来实现这一目标。

我试图做的是

$current = $_GET['order'];
if(isset($current)){
    if(in_array($current, $values)){
        $link = next($values);
        echo "<a href='$link'>Click Me</a>";
    } else {
        echo "<a href='$first'>Click Me</a>";
    }
} else {
    echo "<a href='$first'>Click Me</a>";
}

$_GET['order'] == 'a'; $link <a href='b'>Click Me</a>将变为df.groupby('member_id')['domain'].agg(' -> '.join) 等等。

1 个答案:

答案 0 :(得分:0)

您可以使用JQuery(阅读评论以获得解释):

var values = ['a', 'b', 'c', 'd', 'e'];

//We need to get the value of our $_GET['order'], let's parse our current location url
var get_vars = [];
location.search.replace('?', '').split('&').forEach(function(pair){
    pair_arr = pair.split("=", 2);
    get_vars[pair_arr[0]] = pair_arr[1];
});

//Now let's init the curent index equal to our $_GET['order'] (TODO: error checking/handleing)
var cur_index = values.indexOf(get_vars['order']);

//Now let's init the link value
$('#link').attr('href', '?order='+values[cur_index]);


$('#link').on('click', function(){
    if(cur_index + 1 >= values.length){
        cur_index = 0;
    }else{
        cur_index++;
    }
    $(this).attr('href', '?order='+values[cur_index]);
});

在html中,您当然需要为您的链接提供ID:

<a href='#' id="link">Click Me</a>

在PHP ..或您的网址中...您将需要提供GET var:

<?php
/* TEST */
$_GET['order'] = 'a';
?>

注意:这个链接实际上永远不会带你到任何地方......它只会更新GET变量......它必须进行修改才能真正做一些更实用的事情。