Hi,
ich habe ein seltsames Problem seit gestern und komme nicht auf die Lösung da print_r($_POST) ständig nichts zurückliefert.
Problem ist wie folgt:
In einer Schleife erzeuge ich zunächst 5 Felder
<?php for($i = 0; $i < 5; $i++):?>
<?php
$this->renderPartial('_task', array(
'model' => $oEntities[$i],
'index' => $i,
));
?>
<?php endfor */?>
</table>
<tr>
<td><?php echo CHtml::activeTextField($model, "[$index]entity1"); ?></td>
<td><?php echo CHtml::activeTextField($model, "[$index]entity2"); ?></td>
</tr>
==> Dies wird korrekt erzeugt und die Werte erscheinen später in einem Array in print_r($_POST)
[Entity] => Array
(
[0] => Array
(
[entity1] =>
[entity2] =>
)
[1] => Array
(
[entity1] =>
[entity2] =>
)
[2] => Array
(
[entity1] =>
[entity2] =>
)
[3] => Array
(
[entity1] =>
[entity2] =>
)
[4] => Array
(
[entity1] =>
[entity2] =>
)
)
[yt1] => Save
)
Erzeuge ich nun mit jQuery ein neues Feld und hänge es innerhalb des Formulars ein, so erscheint dies einfach nicht im $_POST
<script>
$(".tasks-add").click(function(e){
i = $(".tasks tr").size();
$(".tasks").append('<tr><td><input name=\"Entity[' + i + '][entity1]\" id=\"Entity_' + i + '_entity1\" type=\"text\" ></td><td><input name=\"Entity[' + i + '][entity2]\" id=\"Entity_' + i + '_entity2\" type=\"text\" ></td></tr>')
});
Im Firebug werden die Felder an die richtige Stelle eingesetzt.
<table class="tasks" style="width: 500px;">
<tbody>
<tr>
<td><input name="Entity[0][entity1]" id="Entity_0_entity1" type="text" maxlength="1000"<</td>
<td><input name="Entity[0][entity2]" id="Entity_0_entity2" type="text" maxlength="1000"></td>
</tr>
<tr>
<td><input name="Entity[1][entity1]" id="Entity_1_entity1" type="text" maxlength="1000"></td>
<td><input name="Entity[1][entity2]" id="Entity_1_entity2" type="text" maxlength="1000"></td>
</tr>
<tr>
<td><input name="Entity[2][entity1]" id="Entity_2_entity1" type="text" maxlength="1000"></td>
<td><input name="Entity[2][entity2]" id="Entity_2_entity2" type="text" maxlength="1000"></td>
</tr>
<tr>
<td><input name="Entity[3][entity1]" id="Entity_3_entity1" type="text" maxlength="1000"></td>
<td><input name="Entity[3][entity2]" id="Entity_3_entity2" type="text" maxlength="1000"></td>
</tr>
<tr>
<td><input name="Entity[4][entity1]" id="Entity_4_entity1" type="text" maxlength="1000"></td>
<td><input name="Entity[4][entity2]" id="Entity_4_entity2" type="text" maxlength="1000"></td>
</tr>
<tr>
<td><input name="Entity[6][entity1]" id="Entity_6_entity1" type="text"></td>
<td><input name="Entity[6][entity2]" id="Entity_6_entity2" type="text"></td>
</tr>
</tbody>
</table>
Das seltsame:
Wenn ich den Quellcode der erzeugten Felder in die View kopiere, so erscheinen die Felder im $_POST.
<tr>
<td><input name="Entity[6][entity1]" id="Entity_6_entity1" type="text"></td>
<td><input name="Entity[6][entity2]" id="Entity_6_entity2" type="text"></td>
</tr>
==> wurde korrekt erzeugt und an die richtige Stelle kopiert. Die Werte von hier erscheinen jedoch nicht im $_POST
Könnt ihr mir hier bitte weiterhelfen.
thx!