我想将一个php变量分配给javascript变量。
<?php
$type =1;
$form = ' <script>
var jquery_type " <?php = $type; ?>";
</script>';
?>
但是在源页面中,它显示如下,
var jquery_type " <?php = $type; ?>" ;
我怎样才能获得这个php值?
答案 0 :(得分:1)
你在脚本中做错了,你不能在PHP中使用PHP标记。
取消管理单
(')
和双(")
引号,导致syntax error, unexpected '='
查看此代码
<?php
$type =1;
$form = '<script> var jquery_type = '.$type.'</script>';
echo $form;
?>
OR
如果你只想在脚本中分配和使用$type
值,那么下面的代码就可以了。
<script>
var jquery_type = '<?php echo $type ?>';
<script>
答案 1 :(得分:1)
@RanaRubel您对问题的否定票,因为对于受人尊敬的开发人员而言,这简直是愚蠢的。在服务器计算机上运行的PHP应用程序具有自己的变量范围,该变量范围与JavaScript变量范围完全不同(在您的本地计算机,另一台计算机上运行)。
这就是为什么您获得否定票。
您真正想做的是传递数据,而不是变量。有很多方法可以做到这一点:
呈现PHP页面时,还呈现网站主体内的数据。例如,您可以呈现纯JavaScript名称或输入字段
<?php
$data = "Yolo";
echo "<script>var data = $data;<script>";
?>
或者您可以呈现输入字段
<?php
$data = "Yolo";
echo "<input id="data" value="$data"/>";
?>
<script>
var data = document.getElementById("data").value;
</script>
这是传递数据的粗略而业余的方式。
Cookie是发送数据的更高级的方法,因为它们不会干扰您的应用程序视图模型。它们是纯数据。您甚至可以在开发人员控制台中轻松阅读它们。
<?php
$data = "Yolo";
setcookie("data", $data);
?>
<script>
var data = document.cookie;
</script>
不像在体内渲染数据那样糟糕,但是由于Ajax调用更专业,更通用并且可以提供对数据流的更多控制,因此没有使用。
这是最复杂的方法,它使程序员可以最大程度地控制如何检索,存储和发送数据。这就是Angular,React或Vue.js等现代前端框架的工作方式。
<?php
$data = "Yolo";
echo $data;
?>
<script>
fetch('/your-script.php')
.then(response => {
var data = response;
})
.catch(error => console.log('Error loading data', err));
</script>
请记住,fetch()
方法仅在较新的浏览器中有效。在较早的版本中,您需要使用XMLHttpRequest
或JQuery。
<meta>
标签这是呈现数据的另一种方式,应将其用于更多文档/网页信息,而不是传递作为业务逻辑的数据。这比在原始JavaScript变量或输入中进行渲染要好一些,因为它们会弄乱您的html / css结构以及您的布局。 <meta>
标签不会呈现,因此不会弄乱您的布局结构。
<?php
$data = 'Yolo';
echo "<meta name='data' content='$data' />";
?>
<script>
var meta = document.getElementsByTagName('meta')['data'];
var data = meta.getAttribute('content');
</script>
答案 2 :(得分:0)
:
$type = 1;
$form = '<script>
var jquery_type = "'.$type.'";
alert(jquery_type);
</script>';
echo $form;
如果是js文件。
var jquery_type = " <?php echo $type; ?>";
答案 3 :(得分:0)
根据我的经验,最通用的解决方案始终有效,是这样的:
<html>
...
<input type="hidden" id="hiddenID" value="<?=$myPhpVar;?>" />
....
<script type="text/javascript">
var x = document.getElementById("hiddenID").value;
</script>
...
</html>