Exécuter du code php
barale61
Messages postés
1326
Statut
Membre
-
barale61 Messages postés 1326 Statut Membre -
barale61 Messages postés 1326 Statut Membre -
Bonjour,
Je souhaite exécuter du code php dans du js en appelant une fonction, mais cela ne marche pas.
Je vous remercie de votre aide.
Je souhaite exécuter du code php dans du js en appelant une fonction, mais cela ne marche pas.
Je vous remercie de votre aide.
<DIV ID="DIR" class="hide-on-med-and-down ORDI">
<?php
function code(){
echo "<div>Contenu du dossier</div>";
$dossier = mb_strtoupper(suppAccent($donnees['denomination']));
$d = dir("Dossiers_Clients/".$dossier."/");
while($entree = $d->read()) {
echo "<div><a href='Dossiers_Clients/".suppAccent($donnees[' rel="nofollow" target="_blank"denomination'])."/".$entree."'>$entree</a><br>\n</div>";
}
$d->close();
}
?>
<SCRIPT>
var element = document.getElementById("DIR");
if (element.className == "hide-on-med-and-down ORDI") {
element.innerHTML = ("<?php code(); ?>");
}
else{
element.innerHTML = ("");
}
</SCRIPT>
</DIV>
A voir également:
- Exécuter du code php
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
2 réponses
Salut,
en effet c'est impossible d’exécuter(interpréter plutôt) PHP.
PHP nécessite un serveur Apache et comme son nom l'indique(preprocessor) celui ci s’exécute avant que la page existe, donc avant qu'il y ait du HTML ou du javascript.
Pour faire ça il faut utiliser AJAX qui consiste à créer un fichier temporaire(méta-données) qui sera ensuite lu par javascript.
AJAX = Asynchronymous Javascript And XML( même si le XML n,'est plus obligatoire(remplacé par json ou autre).
Donc rends les données à utilisées de façon asynchrone, cela permet de faire des chargements plus rapide ou de ne pas recharger une page pour l'interactivité qui ne le nécessiterais pas.
Sinon autant tout faire en PHP, les boucles (while ou autres)seront sur le même principe.
http://www.w3schools.com/php/php_ajax_php.asp
en effet c'est impossible d’exécuter(interpréter plutôt) PHP.
PHP nécessite un serveur Apache et comme son nom l'indique(preprocessor) celui ci s’exécute avant que la page existe, donc avant qu'il y ait du HTML ou du javascript.
Pour faire ça il faut utiliser AJAX qui consiste à créer un fichier temporaire(méta-données) qui sera ensuite lu par javascript.
AJAX = Asynchronymous Javascript And XML( même si le XML n,'est plus obligatoire(remplacé par json ou autre).
Donc rends les données à utilisées de façon asynchrone, cela permet de faire des chargements plus rapide ou de ne pas recharger une page pour l'interactivité qui ne le nécessiterais pas.
Sinon autant tout faire en PHP, les boucles (while ou autres)seront sur le même principe.
http://www.w3schools.com/php/php_ajax_php.asp
Oui mais en PHP je ne peux pas atteindre le DOM et exécuter mon code seulement si la classe est la bonne.
la solution simple est donc de nommer la classe selon la BDD, donc
et bien sûr de traiter cela avant par PHP:
ainsi le javascript peut être utilisé:
echo '<element class='.$classe__utiliser'.'> etc...</element>';
et bien sûr de traiter cela avant par PHP:
if($donnees=='blanc'){
$classe_a_utiliser='blanc';
}
if($donnees=='noir'){
$classe_a_utiliser='noir';
}
etc...
ainsi le javascript peut être utilisé:
var tab_noir=document.getElementByClassName('noir');
tab_noir[0].doSomething(this);
J'essai en php seulement mais cela m'affiche quand même le contenu en grands écrans comme sur les smartphones alors que j'ai un display à none sur ma class hide-large:
/* DEBUT POUR LISTER LE DOSSIER SUR CLASSE SMARTPHONE */
$divSmartphone = "<DIV ID=\"DIR\" class=\"hide-large SMARTPHONE\">";
$maDivSmartphone = $divSmartphone;
function code_smartphone(){
global $bdd;
#Requête préparée
$reponse = $bdd->prepare('select * , DATE_FORMAT(date_ajout, "%d/%m/%Y") AS date FROM fiche_client WHERE id = :id');
$reponse->execute(array('id' => $_GET['id']));
while ($donnees = $reponse->fetch()){
echo "<div>Contenu du dossier</div>";
$dossier = mb_strtoupper(suppAccent($donnees['denomination']));
$d = dir("Dossiers_Clients/".$dossier."/");
while($entree = $d->read()) {
echo "<div><a href='Dossiers_Clients/".suppAccent($donnees[' rel="nofollow" target="_blank"denomination'])."/".$entree."'>$entree</a><br>\n</div>";
}//while
$d->close();
}//code()
}//while
if ($maDivSmartphone == $divSmartphone){
code_smartphone();
}
else{echo"";}
echo "</DIV>";