FAQ PHP
FAQ PHPConsultez toutes les FAQ
Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021
Cela peut-être fait suite à la soumission d'un formulaire. Nous définissons donc un formulaire tout en rajoutant la partie qui sera activée en cas de désactivation du Javascript du côté navigateur.
<form method
=
"post"
action
=
"page2.php"
>
[...]
<noscript>
<input type
=
"hidden"
name
=
"sansJS"
value
=
"1"
>
</noscript>
</form>
Puis dans la page2.php, on rajoute le test suivant :
if (array_key_exists("
sansJS
"
,
$_POST
))
{
$javaScript
=
FALSE;
}
else
{
$javaScript
=
TRUE;
}
Remarque : Ce script ne prend pas immédiatement en compte la présence ou non du javascript, une première soumission est indispensable.
Ce n'est pas possible. La raison est simple : si du code JavaScript peut s'exécuter, c'est que la page a déjà été envoyée au navigateur. PHP étant chargé de préparer la page, son action se situe avant l'envoi de la page au navigateur.
On peut donc en déduire que lorsque JavaScript commence son travail, PHP a déjà terminé le sien. Impossible donc qu'une fonction JavaScript ne déclenche une fonction PHP.
Il existe toutefois une alternative qui est l'AJAX, acronyme pour Asynchronous JavaScript And XML (Javascript Asynchrone et XML). Le principe de base est d'intercepter en utilisant JavaScript les évènements survenants sur la page, et d'insérer dynamiquement dans la page un contenu provenant d'un serveur web, véhiculé par un document XML, toujours en utilisant JavaScript.
Lien : Les technologies d'Ajax
Lien : Formez-vous au Web 2.0 avec nos tutoriels AJAX
Le Javascript est exécuté côté client, alors que le PHP est exécuté côté serveur. Le PHP permet d'écrire une page HTML à la volée. Via les fonctions d'affichage de PHP (echo, print), on peut inclure des balises HTML à la page, on peut aussi afficher du code JavaScript.
Pour inclure dans un script JavaScript des données provenant de PHP, exemple :
<script language
="
javascript
"
>
function
toto
(
) {
if
(
document
.
form1.
age.
value <
<?php
echo $borne_inf
;
?>
) {
alert
(
"
Trop jeune.
"
);
}
}
</
script>
ou encore :
<?php
$borne_inf
=
18
;
echo '<script language="javascript">
function toto() {
if(document.form1.age.value < '
.
$borne_inf
.
') {
alert("Trop jeune.");
}
}
</script>'
;
?>
Cela affichera dans la page HTML :
<script language
="
javascript
"
>
function
toto
(
) {
if
(
document
.
form1.
age.
value <
18
) {
alert
(
"
Trop jeune.
"
);
}
}
</
script>
Pour passer des paramètres à un script PHP depuis du JavaScript, exemple :
<input type
=
"button"
onclick
=
"document.location='home.php?id=150';"
>
ou encore :
Pour recharger la page précédente dans le navigateur du client, il est possible de combiner les en-têtes HTTP et la variable d'environnement $HTTP_REFERER (ou $_SERVER['HTTP_REFERER'] depuis PHP 4.2.0).
header("
Location:
"
.
$_SERVER
[
'
HTTP_REFERER
'
]
);
Attention, la valeur de HTTP_REFERER provient de ce que veut bien retourner le navigateur au serveur. Certains navigateurs ne retournent pas cette information.
Sinon, il existe les fonctions JavaScript :
history
.go
(-
1
);
et
history
.back
(
);