J'essaie d'inclure des variables JavaScript dans le code PHP en tant que variables PHP, mais j'ai du mal à le faire. Quand un bouton est cliqué, la fonction suivante est appelée:
<script type="text/javascript">
function addTraining(leve, name, date)
{
var level_var = document.getElementById(leve);
var training_name_var = document.getElementById(name);
var training_date_var = document.getElementById(date);
<?php
$result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible.");
?>
</script>
C'est possible?
PHP est exécuté côté serveur. JavaScript est exécuté côté client dans le navigateur de l'utilisateur qui demande la page. Au moment où le JavaScript est exécuté, il n’ya aucun accès à PHP sur le serveur. Veuillez lire cet article avec des détails sur le codage côté client vs côté serveur .
En bref, voici ce qui se passe:
Dans votre cas, PHP écrira le code JS dans la page afin qu'il puisse être exécuté lors du rendu de la page dans votre navigateur. À ce moment-là, la partie PHP de votre extrait JS n'existe plus. Il a déjà été exécuté sur le serveur. Il a créé une variable $result
contenant une chaîne de requête SQL. Vous ne l'avez pas utilisé. Ainsi, lorsque la page est renvoyée à votre navigateur, elle disparaît. Regardez le code source lorsque la page est affichée dans votre navigateur. Vous verrez qu'il n'y a rien à la position où vous mettez le code PHP.
La seule façon de faire ce que vous cherchez à faire est soit:
avec les valeurs que vous voulez insérer dans la base de données.
<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>
</script>
<?php echo 'php_'.$abc;?>
Vous semblez confondre les codes côté client et côté serveur. Lorsque le bouton est cliqué, vous devez envoyer (publier, récupérer) les variables au serveur où le php peut être exécuté. Vous pouvez soit envoyer la page, soit utiliser un appel ajax pour envoyer uniquement les données.
PHP fonctionne sur le serveur. Il produit du texte (généralement). Ceci est ensuite analysé par le client.
JavaScript s'exécute pendant et après l'analyse sur le client. A ce stade, il est trop tard pour que le script PHP puisse faire quoi que ce soit.
Si vous souhaitez récupérer quelque chose dans PHP, vous devez créer une nouvelle requête HTTP et y inclure les données (dans la chaîne de requête (données GET) ou dans le corps du message (données POST).
Vous pouvez le faire en:
FormElement.submit()
)Quelle que soit l'option choisie, le PHP est essentiellement le même. Lisez à partir de $_GET
ou $_POST
, exécutez le code de votre base de données, puis renvoyez des données au client.
J'ai eu le même problème il y a quelques semaines, comme le vôtre; mais j’ai inventé une solution brillante d’échange de variables entre PHP et JavaScript. Cela a bien fonctionné pour moi:
Créer un formulaire masqué sur une page HTML
Créer une zone de texte ou une zone de texte sous cette forme masquée
Après que tout votre code écrit dans le script, stockez la valeur finale de votre variable dans cette zone de texte
Utilisez la ligne $ _REQUEST ['nom de la zone de texte'] dans votre PHP pour accéder à la valeur de votre variable JavaScript.
J'espère que cette astuce fonctionne pour vous.
Vous pouvez faire ce que vous voulez, mais pas comme ça. Ce que vous devez faire est de faire une requête AJAX depuis JavaScript vers le serveur où un script PHP distinct peut effectuer l'opération de base de données.
Vous pouvez prendre toutes les valeurs comme ceci:
$abc = "<script>document.getElementByID('yourid').value</script>";