Comment utiliser la variable JavaScript en PHP?

J'essaie ce code:

<script type="text/javascript"> for (i = 0; i < 5; i++) { for (x = 0; x < 1; x++) { $("#one" + i).html("<?php echo $arr["+i+"]["+x+"] ?>"); $("#two" + i).html("<?php echo $arr["+i+"]["+x+1+"] ?>"); }; }; </script> 

Aucune erreur n'est affichée, mais le contenu n'est pas non plus.

Comment puis-je utiliser la variable d'incrémentation de JavaScript dans le code PHP?

Merci

Vous pouvez rendre votre PHP-array accessible à JS (le stocker en tant que js-variable):

 <script type="text/javascript"> var arr=<?php echo json_encode($arr); ?>; for (i = 0; i < arr.length; i++) { for (x = 0; x < 1; x++) { $("#one" + i).html(arr[i][x]); $("#two" + i).html(arr[i][x+1]); }; }; </script> 

Tu ne peux pas faire ça.

Javascript s'exécute sur le client, après tout le code PHP a été exécuté.

Pourquoi ne pas écrire la boucle en PHP à la place? Par exemple,

 <script type="text/javascript"> <?php for ($i = 0; $i < 5; $i++) { for ($x = 0; $x < 1; $x++) { printf('$("#one%s").html("%s");', $i, $arr[$i][$x]); printf('$("#two%s").html("%s");', $i, $arr[$i][$x + 1]); }; }; ?> </script> 

D'accord, j'essaie de vous poser une courte question … je pense que ça peut être très long. PHP c'est un langage de script côté serveur, alors que javascript est un côté client .

Cela signifie que le code php est interprété et exécuté dans le serveur (p. Ex. Apache), et le code javascript est exécuté dans le navigateur lui-même.

Donc, il n'y a aucun moyen d'exécuter le code php à l'intérieur de votre navigateur. Pour le code que vous avez écrit, vous pouvez simplifier les deux for itération javascript en php. Si vous avez vraiment besoin d'imprimer quelque chose dans php, vous devez faire une requête AJAX vers une page php qui reçoit votre valeur javascript et renvoie les valeurs calculées par php dont vous avez besoin.

Jetez un oeil à ces références en tant que début:

<?php est interprété par l'interprète php. Si vous ne possédez pas ce bloc dans un fichier php réel, cela signifie que vous exécutez dans le contexte du navigateur. Le navigateur ne connaît pas php, seul votre serveur web. Ainsi, le navigateur interprètera <?php tant qu'élément HTML, qui n'existe pas.

Vous devez déplacer votre bloc entier dans un fichier php, de la manière suivante:

 myFile.php ========== <?php $arr = array(...); $arrLen = count($arr); $output = '<script type="text/javascript">'; for ($i=0; $i<$arrLen; $i++) { // notice this is in php, not js $output .= '$("#one"'.$i.').html("'.$arr[$i][0].'");'; $output .= '$("#two"'.$i.').html("'.$arr[$i][1].'");'; } $output .= '</script>'; echo $output; ?>