Artikelen met de tag ‘ajax’

28 mei 2010 - Door Korstiaan

File upload progress bar with PHP+APC and JavaScript

Normally when we give a user the possibility to upload files, we give them a nice SWF-based upload solution in order to provide some feedback about the progress. Recently we discovered that PHP has built-in support for this, with a little help from APC (an opcode cacher and memcached alternative).

This knowledge resulted in a library which does all the work needed for this automatically. All you need to do is initiate our JavaScript class, and all inputs are handled automatically. The library consists of a MooTools-based JavaScript class, a PHP file which handles all the AJAX requests and a CSS file.

Unfortunately this library (and APC support) doesn’t work on a default PHP install. The following things are required:

After restarting Apache, download the library, which can be found at http://www.hoppinger.com/playground/progress.zip.  Next step is to upload progress.php, progress.js and progress.css,  include progress.js, progress.css and MooTools (tested with version 1.2.3) in the HTML <head>, and initiate the uploadProgress class for every form you want files handled by this.

Example:

<script type="text/javascript" src="/javascript/mootools-1.2.3-core.js"></script>
<script type="text/javascript" src="progress.js"></script>
<script type="text/javascript">
window.addEvent('domready',function()
{
 $$('form.upload').each(function(o_form)
 {
  o_form.fileUpload = new uploadProgress(o_form,{
         's_actionHelper' : '/playground/progress/progress.php',
         'i_interval' : 1000
             });
 });
});
</script></script>
<link type="text/css" rel="stylesheet" href="progress.css">

This makes the library work for every form with class “upload”.  As you can see, the class has two parameters, the first is the form object and with the optional second parameter you can set a few options:

  • s_actionHelper – the location of progress.php
  • i_interval – the polling interval for progress.php in milliseconds

The layout of the progressbar can be changed by editing progress.css.

When a user uploads the file, and all went well you can find the data JSON’ed in $_POST with the same  name as the original <input>.  If something went wrong (e.g. when the user doesn’t have JavaScript), the file information can be found where you would normally look, in $_FILES.

An example can be found here: http://www.hoppinger.com/playground/progress/index.php

Please note that this is the first version (0.1). Contact me (korstiaan [at] hoppinger.com or the comments)  if you are missing features and/or found a bug.

15 april 2008 - Door Eric

Google maps op Gites.nl

Enige tijd geleden berichtte ik al dat we bezig waren met onderzoek naar de integratie van Google Maps op het vakantieplatform Gites.nl. Gedurende een lange ontwikkelperiode werd het concept geperfectioneerd, maar nu is het dan eindelijk zover!Google Maps op Gites.nl

De nieuwe variant is geheel ‘web2.0′. Door middel van AJaX worden uw selecties opgehaald. U zult dit gelijk merken bij het maken van keuzes in het selectiemenu. In plaats van een gehele ‘refresh’ van de pagina worden enkel de ‘tellertjes’ en de huizen op de kaart aangepast.

In tegenstelling tot het concept hebben clusters nu ook een icoontje gekregen en verschijnt de markering als u er met de muis overgaat (zie afbeelding). Een simpele muisklik toont de huizen in de cluster (tenzij het er meer dan 50 zijn, dan wordt er automatisch ingezoomd). Via een popup-venster krijgt meer informatie over het huis. Uiteraard is het mogelijk om alle details van het huis op de vertrouwde manier te bekijken door deze aan te klikken.

Het ‘live’ plaatsen, zoals dat heet, van de nieuwe functionaliteit had nogal wat voeten in de aarde. Het geheel vernieuwde selectiemenu kon niet 1-2-3 vervangen worden. Er moest goed opgelet worden dat de normale navigatie over de website bleef werken en dat de databaseaanpassingen geen effect hadden op andere gedeelten van de site. Samen met Eric ben ik maandag de puntjes op de i gaan zetten en na de lunch was het uur U daar. Bezoekers moesten het even doen met een onderhoudsmelding, en na een grondige controle was Gites.nl weer open voor gebruik!

Neem gelijk een kijkje op de kaart bij Gîtes om het zelf te ervaren!

21 februari 2008 - Door Eric

Nieuwe website voor Dedato Ontwerpers en Architecten

Deze week is de nieuwe website voor Dedato Ontwerpers en Architecten gepubliceerd. Door gebruik te maken van het Hoppinger CMS kan men nu snel en eenvoudig nieuw werk uit het portfolio presenteren.

Deze pagina’s geven een beeld welke projecten Dedato heeft gerealiseerd in de categorieën architectuur, interactief, grafisch en interieur. De afbeeldingen worden beeldvullend weergegeven, onafhankelijk van de schermresolutie van de bezoeker.

Het menu klapt dynamisch in- en uit m.b.v. AJAX, en valt terug naar een ‘gewoon’ HTML menu wanneer de bezoeker geen Javascript heeft.

dedato website

Naast dat Dedato klant is van Hoppinger is het ook de partner waarmee we samen een nieuw dienstenportaal voor de Gemeente Den Haag aan het ontwikkelen zijn. Een groot project dat in mei van dit jaar wordt opgeleverd.

2 mei 2007 - Door Eric

Hoppinger lanceert Slimreizen.nl en website Databalance

De afgelopen weken heeft Hoppinger weer twee nieuwe website uitgerold die gebruik maken van ons eigen CMS systeem. Het gaat om Slimreizen.nl, een website die wil helpen bij het oplossen van de verkeersproblematiek in Nederland. Het navigatiemenu dat hierin is gebruikt is gebouwd met behulp van AJAX techniek, waardoor deze snel en soepel verloopt.

Voor het bedrijf Databalance werd samen met Boomvanmourik Communicatie een website ontwikkeld die aansloot bij de nieuwe huisstijl en communicatieplan.