Schönen guten Tag,
ich habe eine Tabelle in der ich mittels javascript eine zeile kopiere und neu einfüge. Die Zeile wird auch kopiert.
Der Fehler der dabei passiert ist, dass für die Dropdown-Liste (input('Copy.' . $key . '.user_id'...)) die id immer bei [0] (data[Copy][0][user_id]) stehen bleibt egal wie oft die Zeile kopiert wird. Wobei sich bei einem Texfeld der Zähler erhöht (data[Copy][3][textfeld]).
Warum erhöht sich der Zähler bei der Dropdown-Liste nicht?
Danke
Mitch
Die Tabelle (über cakephp gefüllt):
Der Javascript Code:
ich habe eine Tabelle in der ich mittels javascript eine zeile kopiere und neu einfüge. Die Zeile wird auch kopiert.
Der Fehler der dabei passiert ist, dass für die Dropdown-Liste (input('Copy.' . $key . '.user_id'...)) die id immer bei [0] (data[Copy][0][user_id]) stehen bleibt egal wie oft die Zeile kopiert wird. Wobei sich bei einem Texfeld der Zähler erhöht (data[Copy][3][textfeld]).
Warum erhöht sich der Zähler bei der Dropdown-Liste nicht?
Danke
Mitch
Die Tabelle (über cakephp gefüllt):
PHP:
<div class="col-md-12">
<div class="col-xs-12 table-responsive">
<table id="tableCopies" class="table table-striped">
<thead>
<tr>
<th style="width: 120px">Cc</th>
<th>Gelesen</th>
<th style="width: 150px">Aktion</th>
</tr>
</thead>
<tbody class="table-rows">
<?php foreach ($this->request->data['Copy'] as $key => $value) : ?>
<tr class="data-rows">
<td>
<?= $this->Form->input('Copy.' . $key . '.id') ?>
<br />
[B]<?= $this->Form->input('Copy.' . $key . '.user_id', array('div'=>false, 'label'=>false, 'class'=>'form-control', 'empty'=>'Empfänger auswählen')) ?>[/B]
</td>
<td>
<?php
echo $this->Form->input('gelesen', array('class'=>'', 'type' => 'checkbox', 'label'=>''));
?>
</td>
<td class="action">
<?php if ($key != 0) : ?>
<a onclick="removeRow(this)" href="#" class="btn btn-danger btn-xs btn-remove-row">Löschen</a>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr>
<td>
<a name="btnAddNewRow"></a>
<a id="btnAddNewRow" href="#" class="btn btn-default btn-xs">+ Empfänger</a>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
Der Javascript Code:
Code:
$('#btnAddNewRow').click(function () {
event.preventDefault();
var newRow = $('.data-rows:first').clone();
var rowNo = $('#tableCopies >tbody >tr').length + 1;
newRow.find('input').each(function (index, element) {
// init default properties
element.name = replaceAll(element.name, '0', rowNo.toString());
element.id = replaceAll(element.id, '0', rowNo.toString());
if (element.type == 'hidden') {
element.value = '';
}
if (element.type == 'text') {
element.value = '';
}
if (element.type == 'number') {
element.value = '0.0';
}
var id = 'Copy' + rowNo.toString() + 'Quantity';
if (element.id == id) {
element.value = '0';
}
console.log(element);
});
// add remove button
var removeBtn = '<a onclick="removeRow(this)" href="#" class="btn btn-danger btn-xs btn-remove-row">Remove</a>';
newRow.find('td.action').append(removeBtn);
$('.table-rows').append(newRow);
//$('.input-price-unit,.input-price').number(true, 2);
rowNo += 1;
});
removeRow = function (el) {
event.preventDefault();
$(el).parents("tr").remove();
};
Zuletzt bearbeitet von einem Moderator: