使用PHP和Ajax在同一页面上对多个结果进行排序

时间:2016-01-09 07:35:40

标签: php ajax sorting

我的页面有两列。播放器1的 Column1 ,播放器2的 column2 。 对于每一列,我都有一个下拉列表来选择其中一个玩家。

使用一些ajax en php代码我会返回每个玩家的下载信息。例如:

Col1 :汤姆,足球:8分篮球:5分

Col2 :Jonathan,足球:4分篮球:9分

现在我想让用户对结果进行排序:所以我在每列中添加了另一个下拉列表:

PHP

echo "<select id='filter_class' name=\"filter\"
data-userid=\"".$user_id."\" onchange=\"getFilter(this.value)\">
<option value=\"all\">All</option>
<option value=\"asc\">Asc</option>
<option value=\"desc\">Desc</option> 
</select>";

AJAX

 function getFilter(filter)
{
    var user_id = document.getElementById('filter_class').getAttribute('data-userid');
    console.log(user_id);
    $.ajax({
        type: "GET",
        url: 'http://website.com',
        data: {action: filter, user_id: user_id},
        success: function (result) {
            $("#Target").html(result);
        }
    });
}

如您所见,下拉菜单使用 user_id 选项值对结果进行排序。

此代码仅适用于1列,因为他使用第一个user_id保留( Ofcourse )。例如,当我尝试对第二个结果进行排序时,他会对第一个user_id(Normal)的结果进行排序。

我希望 SORT DROPDOWN 在同一列中使用播放器的 user_id 选择

重要

我希望在页面上显示两个结果后使用排序选项。

2 个答案:

答案 0 :(得分:2)

您需要使用不同的ID创建SORT下拉列表。我们假设您有id='filter_class1'id='filter_class2'的身份证明。

现在您需要将调用下拉列表的ID传递给getFilter()函数。

onchange=\"getFilter(this.value, this.id)\"

getFilter()函数的前几行应如下所示:

function getFilter(filter, eleId)
{
    var user_id = document.getElementById(eleId).getAttribute('data-userid');
    console.log(user_id);

...

答案 1 :(得分:0)

只能有一个带有一个id的元素。

您可能希望将class属性与data属性一起使用。 使用jquery的类选择器。

看看这个例子。

void free_all(node* curs)
{
    int i;

    // recursive case (go to end of trie)
    for (i = 0; i < 27; i++)
    {
        if (curs->children[i] != NULL)
        {
            free_all(curs->children[i]);
        }
    }

    // base case
    free(curs);
}