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à.