私は、より多くの行を追加する動的なテーブルを持っています。ここに私のテーブルがあります。CodeIgniter - フォームヘルパー関数を使用して動的なHTMLテーブルを作成しますか?
<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要素で引用符 "" で。どうすれば修正できますか?
注:私は
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>';
のようなHTML要素を使用してJavaScriptコード内のフィールドを追加した場合、それは罰金行くが、私は、それを行うには、より安全であるためcodeigniter style
にフィールドを追加します。
なぜ 'json_encode'を使うのですか?ちょうど 'echo form_input($ data);はそのトリックを行うべきですか? – Mudshark
json_encodeを削除すると、JavaScriptエラー「SyntaxError:unterminated string literal」が発生します。実際には、それがエラーを与える理由は、の閉じる前に余分な改行を追加します。 @Mudshark –
私は 'form_input'が挿入された後、ブラウザでスクリプトを調べます。 'json_encode'は構文エラーの問題に対する間違った解決策です。 – Jerry