J'ai 2 variables PHP en PHP (principalement USM et $ AG) et je les transmettes à la frontale. En JavaScript, utilisez Isset pour vérifier s'ils ont une valeur avant d'exécuter du code, mais semble ne pas fonctionner
<script> if( <?php isset($usm , $ag) ?> ){ $( document ).ready(function() { var usmData = {!! json_encode($usm) !!}; var agData = {!! json_encode($ag) !!}; }); } </script
4 Réponses :
Cela n'a pas de sens. Vous avez mélangé PHP et JS. P>
résultat de PHP check Cet article article Pour plus d'informations. P> Isset code> est utilisé uniquement sur PHP et ne le rend pas au côté JS. Votre instruction JS n'est pas valide. P>
Mais je l'ai placé à l'intérieur des tags php Php ...?>
@Martin Peu importe car JavaScript s'attend à une valeur booléenne à l'intérieur si code> et que votre résultat de votre code PHP ne soit pas transmis à JS. pas comme ça de toute façon.
Vous devez vérifier la partie IsseT avec PHP uniquement.
<?php if(isset($usm) and isset($ag)){ ?> <script> $( document ).ready(function() { var usmData = '<?php echo json_encode($usm); ?>'; var agData = '<?php echo json_encode($ag); ?>'; }); </script> <?php } ?>
JS strings doit être entouré de ' code> ou
" code>
Oui corrigé aussi son codage dans JSON
@executable J'ai essayé votre solution et j'obtiens cette erreur d'analyse d'erreur: erreur de syntaxe, inattendue '{'
<script> <?php if(isset($usm , $ag)) { ?> $( document ).ready(function() { var usmData = {!! json_encode($usm) !!}; var agData = {!! json_encode($ag) !!}; }); <?php } ?> </script>
Je vous suggérerais d'écrire le code PHP à l'extérieur sinon script code> sera exécuté inutile avec le code vide si la condition n'est pas remplie.
<?php
if(isset($usm , $ag) {
?>
<script>
$( document ).ready(function() {
var usmData = '<?php echo json_encode($usm); ?>';
var agData = '<?php echo json_encode($ag); ?>';
});
</script>
<?php
}
?>
Vous ne pouvez pas accéder à la variable PHP dans le script. Essayez de définir la variable PHP dans des cookies ou des sessions et d'extraire les données variables PHP de là.