【问题标题】:Update the view with javascript without duplicate code使用 javascript 更新视图而无需重复代码
【发布时间】:2019-10-07 11:34:39
【问题描述】:

我有一个将“块”列表打印到页面的 php 应用程序。一个块包括日期、时间、标题和一些其他信息。

用户需要能够向页面添加新的“块”,并且我希望新块出现在现有块的列表中而不刷新页面。

目前,我正在使用 jquery 执行此操作。用户添加一个新块,然后 jquery 插入一个新的 DOM 元素,效果很好。

问题:这样做意味着“块”以两种不同的方式呈现。一种方法是使用 php,在最初打印列表时。另一种方法是使用 Jquery,当添加一个新块时。

拥有这两种不同的渲染意味着每当我想改变一个块的外观,或者向它添加一些新字段时,我必须更新两个不同的东西,php 块和 jquery 块。

php 和 jquery 如何使用相同的代码来渲染单个块?

【问题讨论】:

标签: php jquery rendering


【解决方案1】:

没有代码示例,很难给你任何真正的建议。但一般来说,您有一个 PHP 解决方案,它将由主要的 PHP 脚本和一个仅输出一个块的 sn-p 组成。 sn-p 可以包含在带有传递值的循环中,用于生成主页,稍后可以通过 AJAX 调用相同的 sn-p,而无需任何值并插入到 DOM 中。或者第二种选择是使用 jQuery 函数 .clone() (https://api.jquery.com/clone/)。它可以克隆您想要的块,但您仍然需要清除所有值,如果这是您想要的。或者最终你可以包含一个没有值的块并用 CSS 隐藏它,一旦克隆,只需将其显示从无更改为块或它需要具有的任何显示属性。

【讨论】:

  • 这是两个不错的选择,谢谢!关于第一个选项:我会用 AJAX 传回什么?会是直接的html吗?
  • 是的,只是回显你想要的元素的纯 HTML 代码,并附加在最后一个块之后或你想要放置的任何地方
猜你喜欢
  • 2021-11-07
  • 2013-08-22
  • 2016-08-16
  • 2018-04-11
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多