Saya mencoba menampilkan semua file dalam folder menggunakan PHP.

    var fn=<?php $dir = "folder/*";
    foreach(glob($dir) as $file)  
    {  
    echo $file.'</br>';  
    }
    ?>
    console.log(fn);

Konsol menampilkan output sebagai tidak ditentukan. Saya baru menggunakan PHP dalam Javascript, dan saya yakin saya melewatkan sesuatu yang penting di sini, saya menghargai bantuan apa pun.

0
lakdee 23 Juli 2020, 19:20

1 menjawab

Jawaban Terbaik

@AbraCadaver benar, Anda kehilangan tanda kutip saat Anda menetapkan nilai ke variabel fn.

<?php
  $dir = "folder/*";
  foreach(glob($dir) as $file) {  
    $result .= $file . '</br>';
  }
?>

<script>
  var fn = "<?php echo $result; ?>"; // <- Error was here
  console.log(fn);
</script>

Perhatikan, bahwa menghasilkan JavaScript dengan menggabungkan string bisa rumit dan bermasalah, terkadang opsi yang lebih baik adalah meneruskan data Anda sebagai objek JSON ke JS dan kemudian bekerja dengannya dengan JS:

<?php
$dir = "folder/*";
$arr = [];
foreach (glob($dir) as $file) {
    $arr[] = $file;
}
$jsonObj = json_encode($arr);
?>

...

<script>
    var fn = <?php echo $jsonObj; ?>; // <- in this case DO NOT wrap JSON object with quotes!

    fn.forEach(myFunction);

    function myFunction(item, index) {
        console.log(index, item);
    }
</script>
3
biesior 23 Juli 2020, 17:16