使用PHP和JQuery重建/刷新div

时间:2011-05-13 15:02:03

标签: php jquery html

我想知道你们是如何使用php和jquery进行页面重建的。 在我的应用程序中,我需要一直重建div。 所以我做的是

  1. 使用get {例如person_controller.php?action=rebuild

  2. 发送ajax调用
  3. 控制器使数据库查询填充表单字段。

  4. 现在div已经创建了例如

    $div = '<table> <tr> <td> <label id="' . $id . '">' . $id .'</label> </td> </tr> </table>'; return $div;

  5. 关于ajax调用的成功函数,我这样做:$('#Div').replaceWith(newdiv);

  6. 这个工作非常好,但我想知道这是重建没有页面刷新的div的好方法。

    同样在firebug中,您可以在get请求中看到整个div代码。

    总结:这是一个好方法吗?或者我需要改变我的编码行为。

2 个答案:

答案 0 :(得分:2)

这种方法非常好。从开发人员的角度来看,它可能有缺点:如果它是HTML而不仅仅是数据,那么在firebug中浏览ajax响应会更加困难,并且它将限制服务器端脚本的重用,因为它只会返回一个HTML表格在另一种情况下,您可能需要相同的数据,但格式不同。

另一种方法是仅在数组或对象中返回数据,而不返回HTML。然后,您将在客户端构建HTML。通常人们会对行或行数组进行数据库查询,然后调用json_encode将其置于JSON格式,然后在他们的javascript ajax调用的成功回调中,他们将拥有一个javascript对象或数组,他们可以从中获取数据(在您的情况下为$ id)并生成HTML。

如果您决定希望ajax调用只传输数据而不传输HTML,那么您可能需要查看javascript模板。有一些像Mustache这样的库允许你定义模板,然后将你的AJAX调用中的数据传递给模板,并让它填充占位符。这比在Javascript中将字符串连接起来更清晰。

答案 1 :(得分:1)

这似乎是一个完全可以接受的解决方案 - 如果没有破产,为什么要解决它?你说它运行正常 - 除非你遇到性能不佳我不建议重新分解你的代码。