如何使用PHP轻松地操作页面元素的状态


How can I easily manipulate the state of page elements using PHP?

  • 我可以显示包含许多控件的隐藏面板,通过使用简单的命令,如:

    Panel.Visible = CheckBox1.Checked;
    
  • 我可以很容易地禁用一个按钮:

    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
    Text="Submit" Enabled="false"  />
    

但是现在我正在考虑使用PHP。它是否提供了类似的隐藏/禁用页面元素的简单技术?

与ASP的区别。Net的特点是,页面中的所有控件都(自动)解析为可操作的对象,因为这就是体系结构的设计方式。您正在编写的HTML标记实际上并不是直接发送给用户的最终HTML输出。它首先通过解析器,然后使用可用的对象执行页面后面的代码。

在PHP中,您可以根据自己的需要将HTML代码发送到屏幕上,一旦发出,这就是最终输出。没有可以操作的HTML实体对象的抽象,除非您使用某些第三方库或构建自己的库。相反,您可以这样做:

if ($show) {
    echo '<a href="test.html">Testing</a>';
}

或:

echo '<input type="checkbox" ';
if ($checked) echo 'checked';
echo '/>'

简短的回答是否定的。ASP。NET程序生成提供预期功能的JavaScript和HTML。当使用PHP时,你必须自己生成这些控件(或者使用许多PHP框架中的一个来帮助)。

我个人认为你指的是Javascript/HTML特性而不是PHP。PHP主要是一种脚本语言。对我来说,它在服务器上的位置。隐藏/禁用HTML表单上的某些元素仍然是一个前端功能,由Javascript/CSS/HTML处理。ASP。. NET将为您提供额外的功能,使它更容易,我想,但Enabled="false"真的有更多的HTML比ASP。净

我敢肯定,如果你环顾四周,你会发现PHP库将帮助你做非常好的东西与HTML表单,使您的生活轻松。如果你想为这些特性迁移到PHP,那么我建议你继续使用。net。

你可以使用jQuery等js库来隐藏/显示页面上的元素。像这样的功能属于页面的表示层,而不是PHP中的逻辑层。

你基本上是在说微软的"WebForms"。这是。net的一小部分。

在PHP中没有WebForms的直接类比。

有一个很好的讨论ASP。. Net vs. PHP

我个人认为,当你在客户端做得更多时(例如,使用Javascript或Java applet),用户体验往往会更好。

IMHO . .pSM