Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2011, 16h02   #1
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
Par défaut Soucis avec un foreach

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 :

Code :
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++;
}
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.

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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 18h42   #2
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
J'ai finalement trouvé une solution +- propre.

Vu que le premier div est le tout premier, je sélectionne la plus grande date de toutes les divs, je je l'attribue à la première div.

beegees
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h56.


 
 
 
 
Partenaires

Hébergement Web