Pobieranie wielu elementów w odpowiedniej kolejności.[PHP]


(Teofilp) #1

Witam, 

zrobiłem sobie skrypcik oparty na 'drag and drop'  dzięki któremu mogę pewne elementy z tablicy wyświetlić i poukładać je na stronie. Tylko teraz pytanie jak pobrać je w odpowiedniej kolejności?  

Dokładnie mówiąc: mamy tablicę---> pobieram dane z niej pętlą for----> wyświetlam i układam w swoim cmsie metodą drag and drop, tak że element tablicy który był drugi może być teraz pierwszy. Wszystko było by piękne gdyby nie fakt że nie potrafię odebrać wszystkich danych z tablicy. W obecnej formie[poniżej kod] po prostu pobieram napis Array : (.

<?


	for ($i = 0; $tablica[$i]; $i++ ) 
{
	
	$zm= 'zmienna'.$i;
	$mod=$tablica[$i];
	$$zm = $mod; 
	
// tu wyświetlam i daje możliwość przestawiania elementów na stronie

	echo '<li class="column" draggable="true"><input type="hidden" name="kateg[]" value="'.$mod.'"style="width:50px;"/>'.$tablica[$i].'</li><br>';
	
	
}

?>
<input type="submit" name="submit2" >wyslij</input>

</form>

<?
include('connect.php');
if(!empty($_POST['submit2'])){



		$vt=$_POST['kateg'];



//DALEJ WYSYŁAM ZMIENNĄ $vt DO TABELI W BAZIE

	}
?>

np. kiedy napisałem w name="test" i pobrałem test to pobiera zawsze ostatni element który przestawię.

Co mam zrobić? ; /


(Qrzysio) #2

Zacznij od tego, że źle zrobiłeś pętlę.

<?
    for ($i = 0; $tablica[$i]; $i++ ) 
?>

a powinno być:

<?
    for ($i = 0; count($tablica)-1; $i++ ) 
?>

Poza tym pokaż, co masz po wywołaniu

<?
print_r($vt);
?>

(Teofilp) #3

wyświetlają  mi się elementy tablicy czyli to: : )

Array ( [0] => przykład [1] => article )

 

 

a co do tablicy to nie mogę dać inaczej bo mi nieskończoność elementów w echo tworzy, strona rośnie cały czas w dół :wink:


(Jim1961) #4

po pierwsze: od wyświetlania całych tablic jest "foreach"; nie może to wyglądać tak?

<?php foreach ($tablica as $key => $value): ?>
	<li class="column" draggable="true">
		<input type="hidden" name="kateg[]" value="<?php echo $value ?>" style="width:50px;"/>
		<?php echo $value ?>
	</li><br>
<?php endforeach ?>

po drugie: to sortowania skorzystaj z jQuery.UI i widgetu Sortable, a kolejność odbierzesz za pomocą http://api.jqueryui.com/sortable/#method-toArray


(Teofilp) #5

Więc tak dziękuje za lekcję z foreach : ) działa to bardzo dobrze.  Co do jQuery to będę niestety miał tu problem ; ( nie znam się na tym. Dlatego chciałem to w php odebrać : ( Naprawdę nie ma na to sposobu?

A więc tak wpadłem na pomysł jak to zrobić : ). Jakaż niemoc mnie wzięła, przecież jeżeli mi odbiera tablicę "3 post" to mogę sobie ją z powrotem wrzucić do pętli i do każdego elementu dopisać odpowiednio ponumerowane zmienne element[0]= $zmienna0 : ) poniżej kod jak to uzyskać.

$zm= 'zmienna'.$i;
	$mod=$tablica[$i];
	$$zm = $mod;

(Jim1961) #6

Nie czaję tej "magii". Co Ci to da ??