Bonjour à tous,
J'ai un petit souci avec Sortable (JQUERY UI).
Cela permet en fait de déplacer des divs entre elle pour les reclasser.
J'appelle cette méthode lors du déplacement d'un des éléments :
L'idée est de donner à un champ la date du div qui se trouve juste au-dessus et donner la date de juste en dessous si je suis sur le premier élément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 foreach ($_GET['listItem'] as $position => $item) { $select = "SELECT * FROM neuro_event WHERE id = $item"; $query = mysql_query($select); $res = mysql_fetch_array($query); echo $res['event_date'].'<br/>'; //si c'est un event sans date, je lui mets la date juste au dessus, cela me permet d'aovir une date de tri if($res['event_date'] == "0000-00-00") { if($position == 0) //si un event avec une date 0000-00-00 est en toute première positon, je recupère la date de tri du second event { $sql_val_temp = "SELECT * FROM neuro_event WHERE position = 2 AND patient_id = '".$_SESSION['dmu']."'"; echo $sql_val_temp; $query_val_temp = mysql_query($sql_val_temp); $val_temp = mysql_fetch_array($query_val_temp); $valeur_temporaire = $val_temp['date_pour_Tri']; } elseif($position == 2) { continue; $valeur_temporaire = $val_temp['date_pour_Tri']; } else { echo "ici2<br/>"; $sql_val_temp = "SELECT * FROM neuro_event WHERE position = ". ($res['position']-1)." AND patient_id = '".$_SESSION['dmu']."'"; echo $sql_val_temp; $query_val_temp = mysql_query($sql_val_temp); $val_temp = mysql_fetch_array($query_val_temp); $valeur_temporaire = $val_temp['date_pour_Tri']; } } /*else { $valeur_temporaire = $res['date_pour_Tri']; } */ if($res['event_date'] != "0000-00-00") { $sql= "UPDATE `neuro_event` SET `date_pour_Tri` = '".$res['event_date']."' WHERE `id` = $item"; } else { $sql= "UPDATE `neuro_event` SET `date_pour_Tri` = '".$valeur_temporaire."' WHERE `id` = $item"; } //echo $sql; mysql_query($sql); $i++; }
Cela fonctionne très bien sauf dans un cas :
Si un div qui se trouve tout en bas est déplacé en seconde position, la boucle foreach se lance à partir du premier, prendre la date du second.
Le second prend la date du premier.
C'est là le bug en fait.
J'aimerais que si je déplace une div en seconde position, que la première div (en position 0) ne soit pas modifiée.
Est-ce possible ?
Exemple :
position 0 : 2011
position 1 : 2010
position 2 : 1986
Si je déplace position 2 en position 1, position 0 va prendre la valeur de position 2 (1986) et position 2 va prendre la valeur de position 0 (1986).
Je me retrouve alors avec deux 1986 alors que ça devrait donner :
position 0 : 2011
position 1 : 2011
position 2 : 2010
Merci d'avance.
beegees
Partager