par
Ajoloca » 12 févr. 2007, 13:14
Bonjour,
Dans l'esprit de ce que te propose
Truc voici un exemple pour que tu puisses t'inspirer.
Regarde bien les commentaires et essaie de comprendre ce qui se passe, ne te contente pas de l'adapter.
Si tu as des questions n'hésite pas à les poser.
Il-y-a des façons de faire plus court, mais le but c'est que tu comprennes le mécanisme.
<?php
// Démarrage de la session
session_start();
// Déclaration du tableau
$tab = Array('aaaaaaaa', 'bbbbbbbbb', 'cccccccc', 'ddddddddd');
/* Si c'est le premier passage,
on initialise la session avec la valeur du tableau */
if(!isset($_SESSION['tab'])) $_SESSION['tab'] = $tab;
// C'est pas le premier passage
if(isset($_GET['action']) && isset($_GET['pos'])){
/* On conserve le contenu du poste
(fourni par $_GET['pos'])
dans une variable temporaire */
$tmp = $_SESSION['tab'][$_GET['pos']];
/* Si l'action c'est monter
(fournie par $_GET['action']) */
if($_GET['action'] == 'm'){
// On place le contenu du poste pécédent dans le poste sélectionné
$_SESSION['tab'][$_GET['pos']] = $_SESSION['tab'][$_GET['pos'] - 1];
/* On place le contenu du poste séléctionné
(gardé dans la variable temporaire $tmp)
dans le poste précédent */
$_SESSION['tab'][$_GET['pos'] - 1] = $tmp;
}
/* Dans le cas de descendre on fais les mêmes opérations
mais dans le sens inverse*/
else {
$_SESSION['tab'][$_GET['pos']] = $_SESSION['tab'][$_GET['pos'] + 1];
$_SESSION['tab'][$_GET['pos'] + 1] = $tmp;
}
}
/*
Affichage du tableau
*/
// Calcul de taille du tableau (Nombre de postes)
$taille = count($tab);
echo '<table border="1">';
/* On fera attention au premier et dernier poste
Le premier ne peu être monté
Le dernier ne peu être descendu
C'est pour cette raison qu'ils sont en dehors de la boucle */
echo '<tr><td>' . $_SESSION['tab'][0] .
'</td><td><a href="' . $_SERVER['PHP_SELF'] . '?action=d&pos=0">Descendre</a></td></tr>';
for($i = 1; $i < $taille - 1; $i++){
echo '<tr>
<td>' . $_SESSION['tab'][$i] . '</td>
<td>
<a href="' . $_SERVER['PHP_SELF'] . '?action=m&pos=' . $i . '">Monter</a><br />
<a href="' . $_SERVER['PHP_SELF'] . '?action=d&pos=' . $i . '">Descendre</a>
</td>
</tr>';
}
echo '<tr><td>' . $_SESSION['tab'][$i] .
'</td><td><a href="' . $_SERVER['PHP_SELF'] . '?action=m&pos=' . $i .'">Monter</a></td></tr>';
echo '</table>';
?>
Bonjour,
Dans l'esprit de ce que te propose [b]Truc[/b] voici un exemple pour que tu puisses t'inspirer.
Regarde bien les commentaires et essaie de comprendre ce qui se passe, ne te contente pas de l'adapter.
Si tu as des questions n'hésite pas à les poser.
Il-y-a des façons de faire plus court, mais le but c'est que tu comprennes le mécanisme.
[php]<?php
// Démarrage de la session
session_start();
// Déclaration du tableau
$tab = Array('aaaaaaaa', 'bbbbbbbbb', 'cccccccc', 'ddddddddd');
/* Si c'est le premier passage,
on initialise la session avec la valeur du tableau */
if(!isset($_SESSION['tab'])) $_SESSION['tab'] = $tab;
// C'est pas le premier passage
if(isset($_GET['action']) && isset($_GET['pos'])){
/* On conserve le contenu du poste
(fourni par $_GET['pos'])
dans une variable temporaire */
$tmp = $_SESSION['tab'][$_GET['pos']];
/* Si l'action c'est monter
(fournie par $_GET['action']) */
if($_GET['action'] == 'm'){
// On place le contenu du poste pécédent dans le poste sélectionné
$_SESSION['tab'][$_GET['pos']] = $_SESSION['tab'][$_GET['pos'] - 1];
/* On place le contenu du poste séléctionné
(gardé dans la variable temporaire $tmp)
dans le poste précédent */
$_SESSION['tab'][$_GET['pos'] - 1] = $tmp;
}
/* Dans le cas de descendre on fais les mêmes opérations
mais dans le sens inverse*/
else {
$_SESSION['tab'][$_GET['pos']] = $_SESSION['tab'][$_GET['pos'] + 1];
$_SESSION['tab'][$_GET['pos'] + 1] = $tmp;
}
}
/*
Affichage du tableau
*/
// Calcul de taille du tableau (Nombre de postes)
$taille = count($tab);
echo '<table border="1">';
/* On fera attention au premier et dernier poste
Le premier ne peu être monté
Le dernier ne peu être descendu
C'est pour cette raison qu'ils sont en dehors de la boucle */
echo '<tr><td>' . $_SESSION['tab'][0] .
'</td><td><a href="' . $_SERVER['PHP_SELF'] . '?action=d&pos=0">Descendre</a></td></tr>';
for($i = 1; $i < $taille - 1; $i++){
echo '<tr>
<td>' . $_SESSION['tab'][$i] . '</td>
<td>
<a href="' . $_SERVER['PHP_SELF'] . '?action=m&pos=' . $i . '">Monter</a><br />
<a href="' . $_SERVER['PHP_SELF'] . '?action=d&pos=' . $i . '">Descendre</a>
</td>
</tr>';
}
echo '<tr><td>' . $_SESSION['tab'][$i] .
'</td><td><a href="' . $_SERVER['PHP_SELF'] . '?action=m&pos=' . $i .'">Monter</a></td></tr>';
echo '</table>';
?>[/php]