如何为HTML表格中的每一行添加jQuery对话框 - php

我正在使用PHP(使用codeigniter框架)生成HTML表,并且尝试添加一个链接,该链接将打开一个jquery对话框,其中包含该行的特定信息。一种“更多信息”类型的链接,可以简单地打开对话框。

当我将对话框div添加到该行并在其中封装所需的信息时,它会破坏表(表中不能有div)。

另外,似乎我需要添加一个声明数量不明的jquery对话框函数...我假设需要某种函数,并且打开对话框的元素的ID以及该对话框的ID传递给函数。但是,似乎应该在jQuery中内置一些类似的东西。

我是否想念某些东西,如果有的话,有人能给我正确的方向吗?

参考方案

将信息作为元数据嵌入到行中,例如

<tr data-foo="additional data here" data-bar="even more data">…</tr>

在您的JavaScript中,有一个小魔术叫做.live()

$('#your_table .show_dialog').live('click', function(){
  var data_for_dialog = {
    foo: $(this).closest('tr').attr('data-foo'),
    bar: $(this).closest('tr').attr('data-bar')
  }

  show_dialog(data); // your own code to show the dialog
});

您具有类“ show_dialog”的<a>标记的位置。请注意,如果您有很多属性,或者其中任何一个包含需要包含换行符的数据,这都不会很有效。您可以通过在该<tr>上定义的iterating over each attribute进行改进,并自动包括以data-开头的属性。但是,这超出了这个问题的范围。

就显示对话框而言,这样的操作就足够了:

function show_dialog(data) {
  var $dialog = $('#dialog');
  for(var attr in data) {
    $dialog.find("." + attr).html(data[attr]);
  }
  $dialog.show();
}

<div id="dialog">
  <p class="data-foo"></p>
  <p class="data-bar"></p>
</div>

这未经测试,但是应该说明发生了什么事。

注意:您可以在HTML5中定义自定义属性,只要它们的前缀为“ data-”即可,因此该属性显示在上方。

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

data.push不适用于jQuery - php

我正在通过jquery的post方法发送数据。通过以下方式通过serializeArray()方法从表单收集数据:$("body").on("click",".submit",function(event){ var data = $('#formid').serializeAr…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…