Codul PHP este executat pe server iar datele de iesire sunt transmise la navigatorul web.
Codul JavaScript este executat de browser pe calculatorul utilizatorului, dupa excutia codului de pe server.
Combinand aceste doua limbaje de programare web, se pot obtine scripturi JavaScript dinamice, cu rezultate in functie de datele primite si procesate de server. Astfel, aceeasi pagina de site poate contine un cod JavaScript pentru un utilizator si alt cod JS in cazul altui utilizator.

- Sunt 2 modalitati de a combina JavaScript cu PHP ca sa se obtina un rezultat dinamic sau personalizat:

  1. Prin scrierea intregului script JS in codul PHP si adaugarea acestuia in pagina web cu functia PHP "echo" (sau "print").
    <?php
    echo '<script> var str ="Cod JS"; </script>';
    ?>
    

    Atentie, trebuie sa tineti cont de modul de lucru al ghilimelelor din cod, astfel incat ceea ce va fi returnat de "echo" sa fie un script JS ca si cum a fost scris in codul HTML.

  2. Prin adaugarea in scriptul JS din codul HTML doar a variabilelor PHP necesare scriptului JavaScript (returnand valoarea cu "echo").
    <script>
    var str ='<?php echo $var_php; ?>';
    </script>
    
- Ambele variante de cod trebuie scrise in fisiere php ca sa poata fi procesate de modulul PHP.

In continuare sunt explicate cateva exemple practice din care sa intelegeti modul de combinare PHP-JavaScript si utilitatea acestuia.

Alert cu nume utilizator

De exemplu, intr-o pagina web cu sistem de autentificare sa fie afisata o fereastra Alert cu numele utilizatorului dupa ce s-a autentificat.
In acest caz, presupunem ca numele de utilizator e stocat in PHP intr-o variabila de sesiune: $_SESSION['nume'].
Folosind prima metoda, codul PHP ar fi urmatorul:

<?php
session_start(); // Aceasta functie trebuie scrisa la inceputul fisierului php
// Cod php ...
echo '<script>alert("Bine ai venit '. $_SESSION['nume']. '");</script>';
?>

Sau a doua varianta:
<?php
session_start(); // La inceputul paginii php
?>
<!-- Cod HTML --> <script> var user ="<?php echo $_SESSION['nume']; ?>"; alert('Bine ai venit '+ user); </script>
- O astfel de fereastra Alert poate fi utila in cazul notificarii utilizatorului cu date ce pot fi extrase de PHP dintr-o baza de date sau fisier, cum ar fi instiintarea unui nou mesaj privat.

Ceas cu ora de pe server

Un ceas facut si afisat in pagina cu JavaScript va afisa ora de la calculatorul vizitatorului. Daca se doreste afisarea unei aceleasi date (de pe server) pentru toti vizitatorii, cum ar fi in cazul unor jocuri, trebuie adaugat in scriptul JS timpul de pe server, dupa cum e si in urmatorul exemplu:

<div id='tag_ora'></div>
<script>
// Script ora server-time, de la https://marplo.net

// Preia data serverului prin PHP
var dt_serv = new Date(<?php echo date('y,n,j,G,i,s'); ?>);

// Defineste variabilele JS de lucru
var ore = dt_serv.getHours() // Preia ora
var minute = dt_serv.getMinutes() // Preia minutele
var secunde = dt_serv.getSeconds() // Preia secundele

// Functia de prelucrare si afisare a datelor
function ceas(){
 secunde++;
 if(secunde>59){
 secunde = 0;
 minute++;
 }
 if(minute>59){
 minute = 0;
 ore++;
 }
 if(ore>23) ore = 0;

 var output ='<h4>Ora server - '+ore+':'+minute+':'+secunde+'</h4>';
 document.getElementById('tag_ora').innerHTML = output;
}

// Apeleaza functia la fiecare secunda
setInterval('ceas()', 1000);
</script>
- Testati singuri pt. a vedea rezultatul.

Afisare date cu JavaScript de la PHP, in functie de o adresa URL

Ati vazut in site-urile pt. trafic sau afisare banner ca e necesar adaugarea in pagina a unui mic cod JS cu o anume adresa URL la atributul "src".
Acestea folosesc acelasi principiu, de combinare PHP cu JavaScript.
Adresa din codul ce trebuie adaugat in pagina apeleaza un script PHP, acesta preia cu $_GET parametri din adresa URL primita si in functie de acestia prelucreaza datele pe server si construieste pentru returnarea rezultatului un cod JavaScript si HTML (fara tagul <script>) care va determina afisarea in pagina (cu document.write, sau innerHTML intr-un anume tag) a unui cod HTML pt. banner, trafic, top, ... etc.
Ca sa intelegeti mai bine, experimentati urmatorul exemplu:

1. Creati pe server un fisier php, cu denumirea "phpjs_test.php", si adaugati urmatorul cod:

<?php
// Exemplu test, de la https://marplo.net
// Creaza o un array cu denumiri
$ids =[1=>'php-mysql', 2=>'javascript', 3=>'html'];

// Preia id-ul de la adresa URL
// Va returna cu echo un link (cu denumirea asociata din array) intr-un cod specific JavaScript (document.write)
if(isset($_GET['id'])){
 if($sir = $ids[$_GET['id']]){
 // Va determina afisarea unui link in pagina apelanta
 echo 'document.write("<a href=\'https://marplo.net/'. $sir. '\'>Curs '. $sir. '</a>");';
 }
}
?>

2. In acelasi director de pe server creati un fisier html (ex. "test_jsphp.html") in care adaugati urmatorul cod:
<script src='phpjs_test.php?id=2'></script>

- Apelati acest fisier html de pe server. Rezultatul va fi afisarea (determinata de "document.write()") in pagina a unui link ce a fost definit in scriptul php in functie de 'id' din adresa de la "src".

Similar se pot determina spre afisare banere sau orice altceva construit cu html in interiorul comezii "document.write()".

Trebuie acordata atentie la imbricarea ghilimelelor in codul php de returnare a rezultatului. Rezultatul transmis de "echo" trebuie sa rezulte un cod JS corect ce poate fi recunoscuta si executata de JavaScript.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag HTML5 defineste un text marcat, evidentiat?
<mark> <embed> <span>
<p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
Ce pseudo-clasa CSS defineste un stil la element cand mouse-ul e deasupra lui?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Clic pe functia ce returneaza un sir cu un numar rotunjit la x decimale.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicati functia PHP care adauga continutul unui fisier intr-un array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Clic pe raspunsul potrivit la intrebarea: "What time is it?"
On the 7th of July 1996 It is a quarter to 5. Nice weather.
What time is it? It is a quarter to 5.
- Cat este ora? E 5 fara un sfert.
Indicati raspunsul potrivit la intrebarea: "¿Qué hora es?"
Hace buen tiempo. En el 7 de julio de 1996 Son las tres menos cuarto.
¿Qué hora es? Son las tres menos cuarto.
- Cat este ora? E 3 fara un sfert.
Creare scripturi avansate Javascript - PHP

Last accessed pages

  1. Scriere scripturi PHP elementare (1576)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (20736)
  3. Curs PHP MySQL, Tutoriale si Scripturi PHP (6659)
  4. Espanol Chistes - Glume, Bancuri (877)
  5. Sintaxa JavaScript (2435)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2144)
  2. Prezentul simplu si continuu - Present Tense Simple and Continuous (1480)
  3. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (1072)
  4. Trecutul simplu si continuu - Past Tense Simple and Continuous (1025)
  5. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (981)