So übergeben Sie PHP-Variablen und -Daten an JavaScript
P粉004287665
2023-08-21 12:31:08
<p>Ich habe eine Variable in PHP und muss ihren Wert in meinem JavaScript-Code verwenden. Wie kann ich meine Variablen von PHP an JavaScript übergeben? </p>
<p>Ich habe den folgenden Code: </p>
<pre class="brush:php;toolbar:false;"><?php
$val = $myService->getValue(); // API- und Datenbankaufrufe durchführen
</pre>
<p>Auf derselben Seite habe ich JavaScript-Code, der den Wert der Variablen <code>$val</code> übergeben muss: </p>
<pre class="brush:js;toolbar:false;"><script>
myPlugin.start($val); // Ich habe es versucht, aber es hat nicht funktioniert
<?php myPlugin.start($val); // Dies ist ebenfalls fehlgeschlagen
myPlugin.start(<?=$val?>); // Das funktioniert manchmal, aber manchmal schlägt es fehl
</script>
</pre>
<p><br /></p>
我通常在HTML中使用data-*属性。
这个例子使用了jQuery,但它可以适应其他库或原生JavaScript。
您可以在这里阅读有关dataset属性的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
实际上有几种方法可以做到这一点。有些方法需要更多的开销,有些方法被认为比其他方法更好。
没有特定的顺序:
在本文中,我们将详细介绍上述每种方法的优缺点,以及如何实现它们。
1. 使用AJAX从服务器获取所需的数据
这种方法被认为是最好的,因为服务器端和客户端脚本完全分离。
优点
缺点
实现示例
使用AJAX,你需要两个页面,一个是PHP生成输出的页面,另一个是JavaScript获取该输出的页面:
get-data.php
index.php(或实际页面的名称)
上述两个文件的组合将在文件加载完成时弹出
42
。更多阅读材料
2. 将数据回显到页面的某个位置,并使用JavaScript从DOM中获取信息
这种方法不如AJAX可取,但它仍然有其优点。在某种程度上,它在PHP和JavaScript之间仍然是相对分离的,因为JavaScript中没有直接使用PHP。
优点
缺点
<input type=hidden>
来存储信息,因为从inputNode.value
中获取信息更容易,但这样做意味着你的HTML中有一个无意义的元素。HTML有<meta>
元素用于文档的数据,HTML 5引入了data-*
属性,用于特定元素的与JavaScript相关的数据。实现示例
在这种情况下,你需要创建某种元素,该元素对用户不可见,但对JavaScript可见。
index.php
3. 直接将数据回显到JavaScript中
这可能是最容易理解的方法。
优点