【问题标题】:CodeIgniter - Create dynamic html table using form helper functions?CodeIgniter - 使用表单辅助函数创建动态 html 表?
【发布时间】:2025-12-10 20:05:03
【问题描述】:

我有一个添加更多行的动态表。这是我的桌子。

<table> 
  <thead>
    <tr class="success">
     <th>Bank/Lender</th>
     <th>Add More</th>
    </tr>
  </thead>
  <tbody >
   <tr>
    <td>
     <?php
       $data = array(
              'name' => 'debt_info_bank_name[]',
              'id' => '',
              'class' => 'form-control',
              'placeholder' => 'Bank/Lender Name'
              );
       echo form_input($data);
      ?>
    </td>
    <td>
     <input class="add btn btn-success btn-sm" type="button" value="Add More"  />
    </td>
  </tr>
</tbody>

这是我的 javascript 部分:

    $(document).on('click','.add',function(){ 
    $(this).val('Delete');
    $(this).attr('class','del btn btn-danger btn-sm');
    var appendTxt = '<tr><td><?php  $data = array(
                                    'name' => 'debt_info_bank_name[]',
                                    'id' => '',
                                    'class' => 'form-control',
                                    'placeholder' => 'Bank / Lender Name'
                                  );
                                  echo json_encode(form_input($data)); ?></td><td><input class="add btn btn-success btn-sm" type="button" value="Add More"  /></td></tr>';
    $("#dyn_table > tbody > tr:last").after(appendTxt);
    });

    $(document).on('click','.del',function(){ 
        $(this).parent().parent().remove();

    });

它在每个 td 元素中添加行但带有引号“”。怎么改?

注意:如果我使用 html 元素在 javascript 代码中添加字段,例如

 var appendTxt = '<tr><td><input type="text" placeholder="Bank/Lender Name"  /></td> <td><input class="add btn btn-success btn-sm" type="button" value="Add More" /></td></tr>';

然后一切顺利,但我想在codeigniter style 中添加字段,因为这样做更安全。

【问题讨论】:

  • 你为什么使用json_encode?只需echo form_input($data); 就可以解决问题吗?
  • 删除 json_encode 会导致 javascript 错误:“SyntaxError: unterminated string literal”。实际上它在关闭 之前添加了额外的换行符,这就是它给出错误的原因。 @Mudshark
  • 在插入form_input 之后,我会在浏览器中查看脚本。 json_encode绝对是语法错误问题的错误解决方案。
  • 您能帮我想出解决方案吗? @杰里
  • 我真的不能,不是不看代码,因为它在浏览器中呈现。删除json_encode,然后使用浏览器的检查器查看实际的html。要消除生成输入周围的多余空格,请使用 php 的 trim() 方法。但我想你会发现这不是真正的问题。

标签: javascript php codeigniter codeigniter-3


【解决方案1】:

从这里移除 json_encode。只是回声

 echo form_input($data); ?></td><td><input class="add btn btn-success btn-sm" type="button" value="Add More"  /></td></tr>';

【讨论】:

  • 这个项目也被关闭了。不过谢谢。