Edycja kolejności w tablicach.

0

Witam,
Zastanawiam się jak zrobić by edytować kolejność miejsc w tablicy.
Chodzi np o coś takiego:

Załóżmy że mamy tablice z 4 kolumnami


$a[0] = słoń;
   $a[1] = kot;
   $a[2] = pies;
   $a[3] = mysz;

 

Chcę zrobić coś takiego by jej miejsca można było przestawiać. Tak jak to widać poniżej żeby np. kot był na miejscu psa.


$a[0] = mysz;
   $a[1] = pies;
   $a[2] = kot;
   $a[3] = słoń;

 

Oczywiście chodzi mi tylko o zasadę działania.
Myślałem by np. zrobić tak by wyświetlić dane z tablice i by obok można było z edytować w inpucie numer miejsca w tablicy.

mysz ----> [wstawiamy tu nową pozycję]

Tylko że ja już się pogubiłem i nie mam już pomysłu by to śmigało. Dlatego proszę pomoc : )

1

Najpierw zapisujesz w zmiennej wartość z indeksu do którego ma być przeniesiona mysz i w drugiej zmiennej numer indeksu myszy, potem wstawiasz do indeksu wprowadzonego mysz, a na koncu wstawiasz do indeksu ze zmiennej z indeksem myszy wartość pierwszej zmiennej.

   $a[0] = słoń;
   $a[1] = kot;
   $a[2] = pies;
   $a[3] = mysz;

$indeks = $_POST['indeks'];
$wartosc = $_POST['wartosc'];
//Zakładam że przesłana jest także wartość do której ma być przypisany nowy indeks (np. mysz)

$wartosc1 = $a[$indeks];
$indeks2;

for($i = 0; $i < count($a); $i++){
if($a[$i] == $wartosc){
$indeks2 = $i;
}
}

//Mamy już zapisany indeks myszy i indeks docelowy oraz zapisaną wartość z indeksu do którego ma byc przeniesiona np. mysz
$a[$indeks] = $wartosc;
$a[$indeks2] = $wartosc1;

0

z tego co zrozumiałem to możesz przypisać je do zmiennej

 
$a[0] = 'kot';
$a[1] = 'pies';
$a[2] = 'słoń';
$zmienna1 = $a[0];
$zmienna2 = $a[1];
$zmienna3 = $a[2];
$a[0] = $zmienna3;
$a[1] = $zmienna1;
$a[2] = $zmienna2;

xd

0

zrób sobie pusty szablon
dodaj jakiś skrypt list sort drag and drop,
zmienne przesyłaj jako tablica:

<form method=post>
<ul>
<li><input type=hidden name="kolejnosc[]" value="ID_slonia" /> slon</li>
<li><input type=hidden name="kolejnosc[]" value="ID_kota" /> kot</li>
</ul>
<input type=submit />
</form>

potem zrób sobie var_dump na $_POST['kolejnosc'] i obserwuj zmiany.

potem zaimplementuj to do swojego kodu

0

Pokombinuje tak jak mi radzisz, ja próbowałem w taki sposób, ale już mi coś się sypie
Co prawda uzyskałem to że gdy wywołuje $zmienna0 to wyskakuje mi pierwszy element tablicy, gdy $zmienna1 to drugi itp.
Ale z kolei nie mogę już tego przesłać do formularza, tak by użytkownik by sobie to z edytował.


	for ($i = 0; $ta_tablica[$i];  $i++ ) 
{
	
	$zm= 'zmienna'.$i;
	$mod=$ta_tablica[$i];
	$$zm = $mod; 
	

	echo $mod.' -----><input class="inputt" type="text" name="mdli'.$i.'" value="'.$i.'"style="width:50px;"/><br>';
	
	$mdlo= 'mdlp'.$i;
        $far = $_POST['mdli'.$i.'']; 
        $$mdlo = $far;

       // wpisując to co poniżej to już nie idzie. najprawdopodobniej pobieranie tak zmiennych w $_POST nie działa ;/.
		echo $mdlii1;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.