J'ai un fichier php qui génère une variable et je voudrais que la variable soit placée dans une fonction javascript qui est appelée par onclick sur la page principale. Est-il possible d'envoyer de PHP vers javascript?
Vous pouvez effectuer les opérations suivantes:
<script type='text/javascript'>
document.body.onclick(function(){
var myVariable = <?php echo(json_encode($myVariable)); ?>;
};
</script>
Votre JavaScript devrait être défini dans un fichier analysé par PHP.
Par exemple, dans index.php, vous pouvez placer
<?php
$time = time();
?>
<script>
document.write(<?php echo $time; ?>);
</script>
Ecrivez:
<script>
var my_variable_name = "<?php echo $php_string; ?>";
</script>
Maintenant, il est disponible en tant que variable JavaScript sous le nom de my_variable_name
à tout moment en dessous du code ci-dessus.
Si je vous comprends bien, vous devriez pouvoir faire quelque chose comme suit:
function clicked() {
var someVariable="<?php echo $phpVariable; ?>";
}
Une excellente option consiste à utiliser jQuery/AJAX. Regardez ces exemples et essayez-les sur votre serveur. Dans cet exemple, dans FILE1.php, notez qu'il transmet une valeur vide. Vous pouvez passer une valeur si vous le souhaitez, qui pourrait ressembler à ceci (en supposant que les variables javascript appelées username
et password
:
data: 'username='+username+'&password='+password,
Dans l'exemple FILE2.php, vous récupéreriez ces valeurs comme ceci:
$uname = $_POST['username'];
$pword = $_POST['password'];
Ensuite, faites votre recherche MySQL et retournez les valeurs ainsi:
echo 'You are logged in';
Cela fournirait le message You are logged in
À la fonction de réussite dans FILE1.php, et la chaîne de message serait stockée dans la variable appelée "données". Par conséquent, la ligne alert(data);
dans la fonction de réussite alerterait ce message. Bien sûr, vous pouvez echo
tout ce que vous aimez, même de grandes quantités de HTML, comme des structures de table entières.
Voici un autre bon exemple pour revoir.
L'approche consiste à créer votre formulaire, puis à utiliser jQuery pour détecter la pression du bouton et soumettre les données à un fichier secondaire PHP via AJAX. Les exemples ci-dessus montrent comment procéder.
Le fichier secondaire PHP reçoit les variables (le cas échéant) et retourne une réponse (tout ce que vous choisissez d'envoyer). Cette réponse apparaît ensuite dans la section Succès: de votre AJAX appel comme "données" (dans ces exemples).
Le code jQuery/AJAX est javascript, vous avez donc deux options: vous pouvez le placer entre les balises <script type="text/javascript"></script>
Dans votre document principal PHP document, ou vous pouvez <?php include "my_javascript_stuff.js"; ?>
en bas de votre document PHP. Si vous utilisez jQuery, n'oubliez pas d'inclure la bibliothèque jQuery comme dans les exemples donnés.
Dans votre cas, il semble que vous puissiez à peu près refléter le premier exemple que j'ai suggéré, en n'envoyant aucune donnée et en recevant la réponse dans la fonction de réussite AJAX. Quoi que vous ayez à faire avec ces données, cependant , vous devez faire à l'intérieur de la fonction de réussite. Cela semble un peu bizarre au début, mais ça marche.
Vous pouvez passer des valeurs PHP à JavaScript. Le PHP exécutera côté serveur afin que la valeur soit calculée et ensuite vous pouvez l'écho au HTML contenant le javascript) . Le javascript s'exécutera alors dans le navigateur du client avec la valeur PHP calculé côté serveur.
<script type="text/javascript">
// Do something in JavaScript
var x = <?php echo $calculatedValue; ?>;
// etc..
</script>