【发布时间】: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