在HTML (ECHO)代码的特定部分之后定义PHP变量


Defining PHP Variables After Specific Part Of HTML (ECHO) Code

目前我正在与HTML, PHP和Javascript有一个艰难的时间!我试着一次学习这三种脚本语言,但有一些问题我不能自己解决。

我的问题是:我已经编写了一个PHP文件。其中的代码看起来像这样

<?php
$variable1=300;
$variable2=600;
and so on
echo'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
blabla
else{if
(blah.blah==(something)){**FUNCTION()**;}}
</body>
</html>'
?>

现在事情是,我想插入到FUNCTION()声明的部分,沿着这些行:

$phpvar=20;

我怎么能插入我的PHP变量没有得到任何错误?

如果有人能帮我,我会很高兴的。

thanks in advance

编辑:

问题是我已经使用了代码"ECHO blahblah",所以你的想法不会真正帮助我。为了使用你的建议,我已经编辑了我的来源,但我仍然不明白…

现在我的代码看起来像:
<?php
$variable1=300;
$variable2=600;
and so on
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
blah
<div id="blah" style="margin:0;padding:0;position:absolute;left:' . $variable1 . 'px;top:' . $variable2 . 'px;width:148px;height:57px;text-align:left;z-index:3;">
</body>
</html>

我如何插入变量使它真正工作?

我的第一个建议是改变你向浏览器输出数据的方式,即

<?php
$variable1=300;
$variable2=600;
and so on
//instead of doing an echo and echo-ing all the stuff out you just temporarily end your code
?>

然后在这里输出HTML和JavaScript代码,并在需要将其输入JavaScript时插入php块,如下所示:

var SomeVar = <?php echo $variable1; ?>;

等等…

希望能有所帮助

像这样:

<?php
$variable1=300;
$variable2=600;
// and so on
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body>
<!-- blabla, some HTML, some JavaScript, etc. -->
  if (blah.blah==(something)){
<?php
  $phpvar = 20;
  // some other PHP code
  echo $phpvar;
?>
  }
</body>
</html>

有许多不同的方法可以实现这一点,也许有人可以用PHP中更习惯的方法来回答(我已经有一段时间没有使用PHP了)。基本上我在这里做的是两件事:

    我已经把PHP代码和HTML标记分开了一点。在可读性和性能等方面,这通常优于大型echo语句。不需要echo大块的静态HTML,只需将其视为PHP标记之外的常规HTML。(这将使它更容易开发和阅读,因为你不需要转义的东西或处理PHP字符串在你的HTML代码。)
  1. 我为页面中间的代码添加了第二个PHP标记。我想你会想要做的不仅仅是赋值一个变量,你可以。在这段代码中回显的任何内容最终都会出现在呈现的HTML输出的那一部分中。你也可以在你的HTML周围写循环,这将重复它,就像它是PHP代码的一部分,等等。
最主要的是保持PHP代码在上下文中与它发出的HTML/JavaScript分开。在页面在浏览器中呈现之前,PHP代码在服务器上进行处理。一旦将页面交付给浏览器,PHP代码就完成了,并且实际上不再存在。此时,它是一个在浏览器中呈现和执行的普通HTML/JavaScript页面。虽然不清楚你在问题中最终的HTML/JavaScript中实际尝试做什么,但你要确保在最终的代码中清晰易懂,不要试图将JavaScript与PHP混合在一起。(至少在不理解分离并相应地使用它的情况下,例如AJAX调用)

不是很确定你的代码在做什么,但是这个呢?

<?php
$variable1 = 300;
$variable2 = 600;
$blah = 'something';
$phpvar = 'I am here';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php
if ($phpvar != '') {
?>
<script>
var phpvar = "<?php echo $phpvar?>";
</script>
<?php
}
?>
</head>
<body>
<p>Hello world!</p>
<?php
if ($blah == 'something'){
?>
<script>
function doStuff(){
    alert('Stuff done.');
}
</script>
<?php
}
?>
<p>After stuff</p>
<?php
if ($blah != 'something'){
?>
<script>
function noStuff();
</script>
<?php
} else {
?>
<p>No stuff done this time.</p>
<?php
}
?>
</body>
</html>
http://codepad.org/4hbVRJID

将输出:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
var phpvar = "I am here";
</script>
</head>
<body>
<p>Hello world!</p>
<script>
function doStuff(){
    alert('Stuff done.');
}
</script>
<p>After stuff</p>
<p>No stuff done this time.</p>
</body>
</html>

注意我是如何使用PHP标记(<?php ?>)在标记中插入PHP的。当使用PHP作为模板引擎时(在任何单独完成的逻辑之上),通常会这样做。这样您就不必处理echo,但有时它可能很难阅读。