[Phpmyadmin-devel] Recently Used Tables

Marc Delisle marc at infomarc.info
Sun May 15 13:25:25 CEST 2011


Le 2011-05-14 23:07, Aris Feryanto a écrit :
> Hi Marc,
> 
> On 14 Mei 2011, at 18:39, Marc Delisle <marc at infomarc.info> wrote:
> 
>> Le 2011-05-13 16:06, Aris Feryanto a écrit :
>>> Hi,
>>> 
>>> The recently used tables is now using ajax. I've just pushed to
>>> my repo, so the demo [0] will be available in an hour later.
>>> Comment and suggestion are welcome, mainly regarding the
>>> ajax-related code: - ajax request in navigation.js - ajax
>>> response in navigation.php - ajax trigger in header.inc.php (the
>>> triggering is done by adding <script> tag to call js function in
>>> the navigation frame, any better way?)
>> 
>> Hi Aris, How about this?
>> 
>> diff --git a/js/functions.js b/js/functions.js index
>> 572c857..50fd6f8 100644 --- a/js/functions.js +++
>> b/js/functions.js @@ -2276,5 +2276,9 @@
>> $(document).ready(function() { } });
>> 
>> +        $('#update_recent_tables').ready(function() { +
>> window.parent.frame_navigation.PMA_reloadRecentTable(); +
>> }); + }) // end of $(document).ready()
>> 
>> diff --git a/libraries/header.inc.php b/libraries/header.inc.php 
>> index 05d272e..4036f86 100644 --- a/libraries/header.inc.php +++
>> b/libraries/header.inc.php @@ -21,9 +21,7 @@ require_once
>> './libraries/RecentTable.class.php'; function
>> PMA_addRecentTable($db, $table) { $tmp_result =
>> RecentTable::getInstance()->add($db, $table); if ($tmp_result ===
>> true) { -        echo '<script type="text/javascript">' . -
>> 'window.parent.frame_navigation.PMA_reloadRecentTable();' . -
>> '</script>'; +        echo '<span class="hide"
>> id="update_recent_tables"></span>'; } else { $error = $tmp_result; 
>> $error->display();
>> 
> 
> This works. But, I'm thinking that we should add a function to
> register javascript for a certain page, shouldn't we? The registered
> script will be buffered for output, for example, near the bottom of
> the page. The function will look like this:
> 
> PMA_registerScript ( $scriptString );

We want to avoid using inline Javascript if possible because we want to
benefit from caching these files at the browser level. Also, we want to
use jQuery if possible, instead of pure Javascript.

> 
> Since, IMO, the code will be clearer and easier to understand than
> separated code in both the php and the js.

In this particular case, code has to be both in PHP and Javascript
because you want to refresh the drop-down only if $tmp_result is true.


-- 
Marc Delisle
http://infomarc.info




More information about the Developers mailing list