Php ve javascript dosyaları içeren bir kod düzenlenmesi

2 Cevap php

Ben bir php kütüphanesi dosya ve bir javascript kitaplık dosyası dahil olduğum bir web sitesi var. Ben aşağıdaki dosyalar için sorun yoğunlaşmış:

index.php

<?php
  include('constants.php');
?>
<html>
  <head>
    <script type="text/javascript" src="lib.js"></script>
  </head>
  <body onload="javascript:show_const_1('<?php echo(CONST_TEXT); ?>');
                           show_const_2();">
    Some text here
  </body>
</html>

constants.php

<?php
  define('CONST_TEXT', 'Hello World');
?>

lib.js

function show_const_1(string)
{
  alert(string);
}

function show_const_2()
{
  alert('<?php echo(CONST_TEXT); ?>');
}

Sonuç yani sayfa yüklendiğinde iki mesaj kutularını olsun. İlk "Merhaba Dünya" diyor ve ikinci "" Diyor. İlk javascript yöntemi ben bunu istiyorum ne yapar, ama ben site genelinde birçok yerde işlevini kullanarak edilecek ve böylece ideal ben her zaman bir parametre olarak sürekli geçmek zorunda istemiyorum.

İkinci javascript yöntemi çalışması için kodu yeniden düzenlemek için iyi bir yolu var mı?

2 Cevap

Basit cevabı "lib.js" "lib.php" yeniden adlandırmak olduğunu.

Ayrıca eklemek gerekir

header('Content-type: text/javascript');

dosyanın üstüne.

Bu arada, bize json_encode() javascript çıktı metin olmalıdır:

alert(<?php echo json_encode(CONST_TEXT); ?>);

Ve "javascript:" (zaten kindof modası geçmiş olan) olay nitelikleri ait değil:

<body onload="doSomething();">

Içindeki yöntem gövde alert() PHP (bu Javascript tarafından yorumlanır) tarafından yorumlanır değildir, bu yüzden bunu PHP etiketi koyamazsınız