Tag Archives: JavaScript

PHP og JavaScript

A student wrote to me and asked how he could make JavaScript and PHP work together. I understand the confusion: you know PHP, you know JavaScript – but how to call functions and pass variables between the two ? These languages each represent their own application layers, and it can take a while before you fully understand the implications of that. Even if you have the theoretical knowledge that one is client side and the other is servers side. He’d almost decided not to use JavaScript due to this problem. Here is my reply (sorry non Danes).

Man kan godt klare sig uden javaScript, men det er heller ikke noget problem at få PHP til spille sammen med JavaScript og fx. levere dynamisk data til et script. Med javascript slipper brugeren for at vente på at der bliver sendt en besked til serveren, kommer et svar retur, og browseren reloader svaret – hvergang noget skal beregnes.

PHP er serverside og fortolkes før det når browseren. Har man fx et echo statement i sin php vil det
resultere i et bid HTML som browseren viser. JavaScript fortolkes af browserens javascript fortolker som en del af HTML dokumentet, og dynamiske værdier (fx. en tekststreng) kan sagtens være blevet defineret i PHP. Her bruges echo:

 <?php echo $variable ?> 

Javascriptet læses i sin natur altid efter at php scriptet er blevet lavet om til noget browseren forstår, og ovenstående vil være blevet ‘lavet om’ til værdien af

$variable

alene.
Der er flere måder at gøre det på, men her er et eksempel hvor en javascript variabel defineres ved hjælp af en stump php. Efter php tagget, fortsætter javascriptet med en alert kommando til at vise variablens værdi:

<script type="text/javascript">
var variable="";
alert(variable);
</script>
 

Eller du kan kalde en funktion der ligger i en hel anden php section:

<script type="text/javascript">
  var variable="";  alert(variable);
</script>
 

 

 <?php
function getVariable(){
return "min-text";
 }?>
 

Hvis du har en række php funktioner der henter dataset i forskellige afskygninger fra din mySQL database og returnerer resultatet (som pseudo funktionen i getVariable funktionen ovenfor), kan du i JavaScriptet placere php stumper der kalder disse funktioner og echo’er dem de steder hvor javascriptet skal bruge data fra databasen.

Ready for JavaScript workshop

Today I finished preparations for a JavaScript workshop I am doing this thursday and friday. It’s my first job for Lund&Bendsen – a Java consulting company founded by an old fellow student of mine from the IT university.

With only two participants I expect some pretty intensive programming sessions. Really it’s more like a basic programming workshop as the participants are cut-n-pasters with no idea what they are doing (in their own words). So I am going to tell them what they are doing, and that it’s bad practice. Like for instance registering events and scripting event handlers inline  and simultaneously  – like this:

&lt;a href="http://example.com/" onclick="
 if (confirm('Open this link in a new window?')) {
 window.open('http://example.com/');
 return false;
 }
"&gt;external link&lt;/a&gt;


But maybe this code is actually easier to follow than the ‘best practice’ version of the same thing? For me it’s definitely NOT easy – I get really confused when I see somthing like that, but for beginners it might just make perfect sense – especially if they havn’t yet understood the concept of functions. And thus it’s the right code to show beginners and I should be more forgiving of such attempts. I have a tendency to think that programming examples can get too simple – much better to just give it too ‘em the hard way: best practice, reusable, robust, beautiful code right away. But lately I’ve been wondering if I’m just plain wrong.