Javascript 将PHP变量放在标签内
我有一个问题一直困扰着我,因为我真的找不到答案 假设我运行这个:Javascript 将PHP变量放在标签内,javascript,php,Javascript,Php,我有一个问题一直困扰着我,因为我真的找不到答案 假设我运行这个: <label><?php echo $c; ?></label> <?php $a = 100; $b = 50; $c = $a + $b; ?> 它会说它不知道$c,因为它稍后在脚本中声明,是否有一种方法可以使用PHP在标签中设置变量。我知道php的方式非常有限,因为它只是onload。但我一直在想,是否有一种方法可以做到这一点,而不用将标签放在php脚本下 我也对jav
<label><?php echo $c; ?></label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
它会说它不知道$c,因为它稍后在脚本中声明,是否有一种方法可以使用PHP在标签中设置变量。我知道php的方式非常有限,因为它只是onload。但我一直在想,是否有一种方法可以做到这一点,而不用将标签放在php脚本下
我也对javascript方式持开放态度。只要我能在标签中设置php变量
提前谢谢
编辑:这并不是说我不知道如何正确地做在回声之前。但我只是想知道是否有其他方法可以实现…在创建变量之后,您需要使用变量
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
<label><?php echo $c; ?></label>
如果您对javascript持开放态度,您可以这样做: 首先,给标签一个
id
:
<label id="label">...</label>
。。。
然后在php中添加以下内容:
echo '<script>document.getElementById("label").innerHTML = "'.$c.'";</script>';
echo'document.getElementById(“标签”).innerHTML=“”.$c.“;”;
是的,试试:
<label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
echo $c;
?>
</label>
在PHP编程中,它自上而下执行。变量必须有一个值才能回显:
<label><?php echo $c; ?></label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
上述内容不正确,因为变量$c还没有值。您需要首先执行标签前面的PHP代码,如下所示:
?>
上面的$c现在包含$a和$b的总和。试试这个:-
<label><?php label(); ?></label>
<?php
function label()
{
$a = 100;
$b = 50;
$c = $a + $b;
echo $c;
}
?>
如果您真的希望在输出之前有变量,您可以为它使用一个类::
<?php
class some{
public function __construct(){
}
public function really(){
$a = 100;
$b = 50;
$c = $a + $b;
return $c;
}
}
?>
<?php $some = new some();?>
<label>This is C = <?php echo $some->really(); ?></label>
这是C=
好吧,评论是关于你台词的顺序,但我想你必须这么做。。。所以
1-为标签提供一个id:
<label id="label4c"></label>
我看不出你需要这样做的真正原因,但这是一个刺激性的练习。正如许多其他人已经告诉您的那样,在简单的PHP中无法做到这一点,因为脚本是自顶向下执行的,并且您试图在赋值之前打印变量 您要求提供javascript解决方案,下面是一个在dom完全加载后向您显示正确值的解决方案:
<label><script>
document.onreadystatechange = function () {
if (document.readyState == "complete") {
document.write(c);
}
}
</script></label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
<script>var c = <?php echo $c;?>;</script>
document.onreadystatechange=函数(){
如果(document.readyState==“完成”){
文件。编写(c);
}
}
var c=;
这段代码非常幼稚,我不建议在真实环境中使用它(同样,它不能在任何设备中工作),因为它编写得不好,也不容易维护。我宁愿告诉你考虑一下你的流程,了解你是否真的需要做你认为需要的事情(在分配之前写一个变量)。我绝对相信有一种方法可以重新设计你的脚本来编写更好的代码:你可能把一些简单的东西复杂化了。祝你好运 简单地说,您应该通过脚本尝试此操作
<label id="p1"></label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
<script>
document.getElementById("p1").innerHTML="<?php echo $c; ?>";
</script>
document.getElementById(“p1”).innerHTML=“”;
听起来很愚蠢,为什么不把标签放在php部分后面呢?使用printf(“%d”($a+$b))
而不是echo,在内部label@diEcho这将打印0,这不是预期的结果result@LorenzoMarcon看:@diEcho这很简单,但不是OP要求的。。他想在实例化之前打印它。试着把printf放在第一行,你的例子就不会有好的答案,我需要一点时间来理解它。但在它被接受之后,这只是一个绝妙的解决方案。他说他必须在标签后定义$c(原因未知)…不,他从来没有说过必须这样做。他说它只是:,因为它在脚本后面声明了
,还有,但我一直在想,是否有一种方法可以做到这一点,而不将标签放在php脚本下面。
哦,突然,你让我羞愧了*是的,这就是我的想法,我知道这是不可能的,但我想知道是否有任何方法(javascript)。我知道这对一个简单的http请求是有效的,OP要求使用js替代方案……但这真的很难看,如果通过xhr(ajax)加载脚本,就会导致问题callI会说,除非你有更好的观点,否则将javascript与php>>>混合是非常糟糕的做法?Rolen Koh的答案看起来更好,但问题在javascript部分。我想混合是他想要的。因为你告诉他包含另一个库,因为只使用innerHTML
是对javascript开放的;)但他患有的是脚本顺序混乱综合征。。即使他做了javascript,它也不会像现在这样工作;)他的编辑说,他正在寻找解决方案,但不带低于$c的标签:)所以他没有什么办法:)这纯粹是一个示例脚本,而不是需要做的事情,我只是好奇地问,在分配它之前,是否有什么东西可以回显$。太好了,这是我的猜测。这是一种可以做到这一点的方法(按照您的要求,使用javscript)
echo "<script>jQuery(document).ready(function () {
jQuery('#label4c').text('$c');
});</script>";
<label><script>
document.onreadystatechange = function () {
if (document.readyState == "complete") {
document.write(c);
}
}
</script></label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
<script>var c = <?php echo $c;?>;</script>
<label id="p1"></label>
<?php
$a = 100;
$b = 50;
$c = $a + $b;
?>
<script>
document.getElementById("p1").innerHTML="<?php echo $c; ?>";
</script>