2013-04-10 5 views
1

У меня есть страница php, которая отображает таблицу из нескольких MySQL-запросов и от их использования функции JavaScript для сортировки результатов столбца, все это прекрасно работает, моя проблема в том, что мне нужно обновить результаты из этих запросов каждые 10 секунд или около того, который отлично работает (с мета-обновлением), проблема заключается в обновлении после сортировки столбцов. при обновлении страницы также происходит сброс сортировки. здесь приведен фрагмент функции сортировки;

<script> 
    function tablesort(which){ <-----I tried using the $_GET method you suggested 
           <-----But i get a "missing formal parameter" error 
           <-----When also using this suggestion and use the 
           <-----"onclick" i get a "tablesort" is not defined 
           <-----error 
$(document).ready(function(){ 
if(which == '1.0'){<!--This sorts the pause row, descending --> 
$("#Mtable").tablesorter({sortList: [[1,0]]}); 
} 
if(which == '2.1'){<!--This sorts the total dialer row, descending --> 
$("#Mtable").tablesorter({sortList: [[2,1]]}); 
} 
if(which == '3.0'){<!--This sorts Wrap-up time row, descending --> 
$("#Mtable").tablesorter({sortList: [[3,0]]}); 
} 
if(which == '4.1'){<!--This sorts donation amount row, descending --> 
$("#Mtable").tablesorter({sortList: [[4,1]]}); 
} 
if(which == '5.1'){<!--This sorts Up-sale row, descending --> 
$("#Mtable").tablesorter({sortList: [[5,1]]}); 
} 
if(which == '6.1'){<!--This sorts the Monthl donation row, descending --> 
$("#Mtable").tablesorter({sortList: [[6,1]]}); 
} 
if(which == '7.1'){<!--This sorts the verified sales row, descending --> 
$("#Mtable").tablesorter({sortList: [[7,1]]}); 
} 
if(which == '8.1'){<!--This sorts the calles per hour row, descending --> 
$("#Mtable").tablesorter({sortList: [[8,1]]}); 
} 
if(which == '9.1'){<!--This sorts the payments per hour row, descending --> 
$("#Mtable").tablesorter({sortList: [[9,1]]}); 
} 
if(which == '10.1'){<!--This sorts the average sale row, descending --> 
$("#Mtable").tablesorter({sortList: [[10,1]]}); 
} 
if(which == '11.1'){<!--This sorts the sales total row, descending --> 
$("#Mtable").tablesorter({sortList: [[11,1]]}); 
} 
    }); 
    } 
    </script> 

здесь ссылки, которые сортируют таблицу»

 Sort by: 
<a onclick="tablesort('1.0')"> Lowest Pause<a/>&nbsp &nbsp 
<a onclick="tablesort('2.1')"> Highest Dialer<a/>&nbsp &nbsp 
<a onclick="tablesort('3.0')"> Best Wrap-up<a/>&nbsp &nbsp 

из-за обновления им, желающих передать переменные данные из onlcick в URL подобного $ _GET, так что это будет что-то тип а затем прочитать функцию сортировки;

локальный/dbtabke.php? Который = 2.1 < ---- точный пример URL используется

любая помощь о том, как сделать это было бы весьма признателен, спасибо заранее.

@prabeen гири я предоставил полную функцию, еще раз спасибо

+0

'$ .get ('локальный/dbtabke.php? Mtable =' + sort_by_var, ...)'? –

+0

Вы хотите передать переменные запроса как часть запроса AJAX, который перезагружает данные через страницу PHP. –

+0

@Mathew Darnell, я хочу передать данные «» таблиц ('1.0') в функцию javascript через URL-адрес из-за его части обновления. – Iz3k34l

ответ

0

Я закончил делать следующее, используя $ _GET , вот код;

<body> 
    <!--This gets the element from the URL to set the Sorting, so the page 
     can be refreshed without losing the sorting--> 
    <body onload="sorttable.innerSortFunction.apply(document.getElementById('<?php echo $_GET["id"]; ?>'), [])"> 

    <!--table headers that are used to determine columns to sort by--> 
    echo "<th id=\"dialertime\">".ucfirst("Dial Time")."</th>\n"; 
    echo "<th id=\"pausetime\">".ucfirst("Pause Time")."</th>\n"; 

    ...*other table info* 
    <!--links that sort the specific row--> 
    <a href="?id=wrap-by-time"> Wrap-up time<a/>&nbsp &nbsp 
    <a href="?id=wrap-by-percent"> Wrap-up %<a/>&nbsp &nbsp 
    </body> 

спасибо за вход каждого, надеюсь, что это помогает

0

Вы не обязательно должны использовать метод GET, чтобы сохранить порядок сортировки.

Вы также можете использовать файл cookie для сохранения порядка сортировки. Таким образом ваш код будет выглядеть более чистым.

function setCookie(c_name,value,exdays) 
{ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate() + exdays); 
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; 
} 

function getCookie(c_name) 
{ 
var i,x,y,ARRcookies=document.cookie.split(";"); 
for (i=0;i<ARRcookies.length;i++) 
{ 
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
    x=x.replace(/^\s+|\s+$/g,""); 
    if (x==c_name) 
    { 
    return unescape(y); 
    } 
    } 
} 

Вызов функции setCookie() при сортировке заказ и передать порядок сортировки в качестве параметра.

И когда страница загружается в первый раз или обновляется, вызовите ту же функцию сортировки и вызовите getCookie(), чтобы получить значение cookie, и установите его как свой порядок сортировки перед сортировкой.

Если вы хотите использовать GET, это также сделает работу , когда страница обновится, надеюсь, вы вызовете эту функцию tablesort(), когда документ готов.

tablesort('<?php print $_GET['MTable']?>') ; 

Примечание: проверьте параметр действителен или нет в функции tablsort(), потому что при загрузке страницы в первый раз, GET переменная будет пустой, я считаю