web-dev-qa-db-fra.com

Envoyer PHP à la fonction javascript

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?

11
user1879926

Vous pouvez effectuer les opérations suivantes:

<script type='text/javascript'>
    document.body.onclick(function(){
        var myVariable = <?php echo(json_encode($myVariable)); ?>;
    };
</script>
18

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>
5
Jason

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.

5
Hubro

Si je vous comprends bien, vous devriez pouvoir faire quelque chose comme suit:

function clicked() {
    var someVariable="<?php echo $phpVariable; ?>";
}
2
username tbd

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.

1
crashwap

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>
0
Ren