从PHP更改不同位置的DOM对象


Change DOM objects from PHP in different location

我喜欢在我的html文件的底部有我所有的php代码。

我有一个DOM对象标签<input id="name"/>,我想将该元素的value属性更改为php中的值。

我试图避免做以下事情…

<input id="name" value="<?php echo 'somevalue'; ?>" />

并且宁愿在下面单独的php代码中设置值。(有点像javascript)

<input id="name"/>
<?php How do I set the input tag's value in php here?>

我也想避免回显javascript来执行任务....

我想说的是php在脚本化了一些html之后会返回去改变脚本化的内容

一旦文档被发送出去,它就超出了PHP的范围,您将不得不使用Javascript,或者您应该将整个HTML文件包含在PHP变量中,以便使用DOM Parser访问它。

当您使用echo?>direct output<?php时,PHP不知道HTML或DOM,它只是向浏览器发送字符串。

您可以创建一个DOM对象或类似的对象来表示您的输出页面并对其进行操作,但这没有多大意义。不像在JS中,你动态地响应事件和操作屏幕上已经存在的东西,PHP生成的输出是"一次性"的事情:一旦你准备好了,浏览器就渲染它,一次,然后你就不能再控制它了。

您需要考虑数据模板: PHP代码可以准备一些数据,放入一个或多个变量中,然后将该数据传递给特定的模板,该模板遍历并呈现基于该数据的内容。区别在于模板不应该对客观事实做出任何决定,只应该决定你希望事物如何显示。

有各种专门的库来做这件事,比如Smarty和Twig,或者你可以只include一个PHP文件,你已经指定为你的模板