Ich habe den Theme-Handler für ein Formular in Drupal festgelegt und dieser Handler hat eine Vorlagendatei. Was ist der einfachste Weg, um einen Wert von PHP an JavaScript in dieser Include-Datei zu senden?
quelle
Ich habe den Theme-Handler für ein Formular in Drupal festgelegt und dieser Handler hat eine Vorlagendatei. Was ist der einfachste Weg, um einen Wert von PHP an JavaScript in dieser Include-Datei zu senden?
Die Standardmethode in Drupal ist drupal_add_js unter Verwendung des Typs "Einstellung":
drupal_add_js(array('variableName' => 'value'), 'setting');
Dadurch wird die Variable auf der JS-Seite unter Drupal.settings.variableName verfügbar.
Einige weitere Beispiele zu drupal_add_js ,
Es ist besser, den Modulnamen beim Hinzufügen einer JS-Variablen anzugeben, um Probleme zu vermeiden.
drupal_add_js(array('myModule' => array('key' => 'value')), 'setting');
Wenn Sie nach der Initialisierung des DOM JS-Code ausführen möchten,
drupal_add_js('jQuery(document).ready(function () { alert("Hello!"); });', 'inline');
Der #attached
Schlüssel zu einem Formular kann auch zum Senden einer PHP-Variablen an js verwendet werden.
$my_variable = 'My custom value';
$form['some-element']['#attached']['js'] = array(
array(
'data' => drupal_get_path('module', 'my_module') . '/js/script.js',
),
array(
'data' => array(
'variable' => $my_variable,
),
'type' => 'setting',
),
);
Dies kann hook_form_alter
zum Beispiel in verwendet werden.
Am einfachsten ist es, es in ein Skript-Tag zu übertragen:
<script type="text/javascript">
var variableName = <?php echo $variable ?>;
</script>
Wenn Drupal eine Vorlagensprache verwendet, müssen Sie die <?php echo... ?>
durch die relevante Ausgabemethode ersetzen ...