Hi All,

Ik ben opzoek naar een script waarmee je de rijen van een tabel (of de li elementen van een ul eventueel) kunt verplaatsen.

Ik wil dus dat je de rij kunt slepen naar zijn nieuwe positie en dat die nieuwe positie dan in de database wordt opgeslagen (en de nieuwe positie van de rest dus ook, want als je 6 naar 3 verplaatst veranderen ook de nummers 3,4 en 5.

Het liefst met mootools omdat dat het framework is dat ik ook voor mijn andere acties gebruik.

Greetz
Newb
Ik doe het zo:


<?php
	header ('Content-type: text/html; charset=UTF-8');
	ini_set ('display_errors', 1);
	error_reporting (E_ALL);

	require_once '../classes/class.core.php';
	require_once '../classes/class.database.php';
	require_once 'authenticatie.php';

	$config = array (
		'title' => 'hier je titel'
		);
	$html = '';

	// updaten?
	if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		if (isset ($_POST['serial_nr'])) {
			$i = 0;
			foreach ($_POST['serial_nr'] as $title) {
				$i++;
				$sql = "
					UPDATE pages
					SET tracking_nr = " . $i . "
					WHERE title = '" . mysql_real_escape_string ($title) . "'
					";
				if ($db->query ($sql)) {
					$db->set_msg ('<p>Volgorde aangepast voor <strong>' . $title . '</strong></p>');
				}
			}
		}
	}
	$html = '';
	$sql = "
		SELECT title, tracking_nr
		FROM pages
		ORDER BY tracking_nr ASC
		";
	$html .= '
		<form method="post" action="">
		<div id="sortable">
	';
	$i = 0;
	foreach ($db->get_records ($sql) as $row) {
		$i++;
		$html .= PHP_EOL . '<p>' . $i . '. <input class="drag' . ($i % 2) . '" readonly="true" name="serial_nr[]" value="' . $row['title'] . '" /></p>';
	}
	$html .= '
		</div>
		<p><input type="submit" value="opslaan" /></p>
		</form>
	';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title><?php echo $config['title']; ?></title>
    
    <link rel="stylesheet" type="text/css" media="screen" href="../css/reset.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="../css/leonivanveen.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="../css/beheer.css" />

	<script type="text/javascript" src="../ajaxfilemanager/jscripts/tiny_mce/tiny_mce.js"></script>
	<!--script type="text/javascript" src="../ajaxfilemanager/jscripts/general.js"></script-->
	<script type="text/javascript" src="js/tiny_mce_init.js"></script>
    <script type="text/javascript" src="../mootools/mootools.js"></script>
    <script type="text/javascript" src="js/edit.js"></script>
	<script type="text/javascript">
		window.addEvent ('domready', function () {
			new Sortables($('sortable'));
		});
	</script>
</head>

<body>
	<div id="container">
		<div id="header">
		<h1><?php echo $config['title']; ?></h1>
		</div>
		
        <?php
			// echo '<pre>' . print_r ($config, true) . '</pre>';
			echo $db->get_errs_html ();
			echo $db->get_msgs_html ();
		?>
        
		<?php
			require 'nav.php';
			echo $html;
		?>
		
	</div>
</body>
</html>
@Jan

Heb je dat toevallig ook ergens online staan?
Ja, maar in een CMS van een klant. Heb je even een kwartiertje? Dan zet ik het wel online op mijn eigen site.
Ja hoor, bedankt!
Hier staat ie: http://www.jankoehoorn.nl/volgorde.php

Ik heb het databasedeel er ff uitgehaald, maar da's redelijk simpel. Ik heb gewoon een tabel met paginatitels en volgnummers, die haal je op met een select query. Na verzenden van het formulier komen de pagina's in de nieuwe volgorde binnen. Dan laat je gewoon een tellertje meelopen voor het nieuwe volgnummer per titel en voer je een update query uit.
Heel erg bedankt Jan. Ik kan nu sorteren. Na het sorteren doe ik direct een AJAX request die de volgorde update in de database.

Thx!
Okee graag gedaan ;)

Reageren