Sytuacja wygląda następująco:
Mam kilka list. Od jednej w górę (w zalezności od tego ile sobie dany użytkownik wygeneruje).
Listy te można sortować za pomocą jQuery.
Mam foreacha, który generuje te listy u użytkownika na stronie. Wygląda on następująco:
$i = 0;
foreach ( $tempArray as $value){
$id = $value->id;
// Tutaj wysyłam te id, żeby za pomocą jego mógł potem wykonać odpowiedniego update w bazie
?>
<input type="hidden" id="id value ="<?php echo $id ?>">
<ul class="list">
<?php
$j = 1;
foreach ( $array as $value){
$name = $value->name;
?>
<li id='<?php echo $j.$i ?><?php echo $player_name; ?></li>
<?php
$j++;
}
?>
</ul>
<?php
$j++;
}
W źródle strony wygląda to następująco (w zależności ile wygeneruje list):
<ul class="list" >
<li id='11' >A</li>
<li id='21' >B</li>
<li id='31' >C</li>
<li id='41' >D</li>
<li id='51' >E</li>
</ul>
<ul class="list" >
<li id='12' >A</li>
<li id='22' >B</li>
<li id='32' >C</li>
<li id='42' >D</li>
<li id='52' >E</li>
</ul>
I chce po prostu złapać posta AJAXem, żeby móc zrobić update w bazie danych (złapać kolejność - czyli li#id oraz te nasze główne id.
<script>
$( function() {
$(".list").sortable({
update : function () {
var list = $(".list").sortable('toArray');
var Id = $('input#id').val();
$.ajax({
data: { list: list,
id: Id,
},
type: 'POST',
});
}
});
});
</script>
I co bym nie zmieniał w tych listach, czy kolejność w pierwszej czy drugiej czy trzeciej to POST jest zawsze pierwszej listy:
array(3) {
["list"]=>
array(5) {
[0]=>
string(1) "1"
[1]=>
string(1) "3"
[2]=>
string(1) "4"
[3]=>
string(1) "2"
[4]=>
string(1) "5"
}
["id"]=>
string(4) "1"
W sensie, że zmieniam położenie czegoś w pierszej liście - wszystko dobrze aktualizuje (zmiany widoczne w POSCIE), zmienie coś w drugiej czy innej - dalej pokazuje ten pierwszy wynik.
Czyli nie mogę uzyskać posta z pozostałymi listami, bo ciągle pokazuje mi tę pierwszą, jak to zrobić?