IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Supprimer totalement ligne d'un array


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut Supprimer totalement ligne d'un array
    Bonjour,


    J'ai un souci avec splice.
    Mon array n'est pas ordonné, les key sont personalisés, il y a donc des trous partout.
    J'utilise donc des "for (truc in monarray)"

    Pour supprimer une ligne j'utilise pour le moment splice.
    Mais le reste de l'array, à la suite de la ligne supprimée ne s'affiche plus.
    Je demande l'affichage par un for, je demande cet affichage après la mise à jour de l'array pour l'actualiser.

    Petit exemple au cas où je ne soit pas clair comme une fontaine.

    [12][0] = 'toto'
    [12][1] = 'toto1'
    [12][2] = 'toto2'
    [12][3] = 'toto3'
    [12][3][0] = 'toto4'
    [18][0] = 'titi1'
    [18][1] = 'titi2'
    [18][2][0] = 'titi3'
    [29][0] = 'tutu1'
    [74][0] = 'tata1'

    Si je supprime la ligne [18]
    les lignes 29 et 74 ne s'affichent plus quand je demande d'afficher tout l'array via un for.

    Je le fais depuis une page php/ajax
    echo "array_info.splice(".$id.");";


    Donc c'est moi ou c'est splice le probleme ?

    Bonne journée

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Par défaut
    Salut, c'est ta façon d'utiliser split qui est mauvaise.

    Il attends au moins deux paramètres : l'index à partir duquel supprimer, et le nombre de lignes à supprimer. Autrement, il enlève tout depuis l'index indiqué.
    Tu peux aussi rajouter une valeur par laquelle remplacer la valeur retirée.

    Dans ton cas, il faut donc écrire : ton_array.splice(id,1);


    Les cours du w3c sont parfaits pour répondre à ce genre de questions

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Effectivement, grosse boulette de ma part.
    Merci de m'avoir corrigé.
    Je pensais pourtant avoir bien lu.

    Sauf que maintenant il ne fait rien.
    Je vais chercher pourquoi.

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    une fois que j'ai fais le splice.
    Je relance le "for (truc in monarray)" pour afficher la nouvelle liste.

    Via des alerte qui me donne les N° des id je vois que sa s'arrête à l'endroit qui a été supprimé. Et donc le script ne fonctionne plus.

    Je ne sais pas trop quoi faire.

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$sql = "DELETE FROM LR_matable WHERE user_id = '".$user_id."' AND id = '".$id."'";
    	$r=mysql_query($sql) or die(mysql_error());
    	echo "array_info.splice(".$id.",1);";
    	echo "restore_view();";
    Le restore_view ne fonctionne plus, quel que soit ce que je demande. Cette fonction liste dans des tables et div l'ensemble du contenu de ma page, et don du contenu de monarray. Je dois recharge ma page pour que ca marche donc c'est lié au splice et pas a ma bdd.

    Info +:
    Si je lui colle une alerte avant de lui demande de liste le contenu. disons :
    alert(array_info[77][1]);

    Après le splice cette alerte me donne la value uniquement le N° supprimé est plus loin dans la liste de l'array. Alors que je ne lui demande pas d'affiche ou de le lire le N° supprimé, juste de pointer sur le N° demandé.

  5. #5
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 115
    Par défaut
    Salut,

    J'ai testé le code suivant :
    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
    var x;
    var txt="";
    var person=new Array();
    person[12]=new Array();
    person[12][0] = 'toto';
    person[12][1] = 'toto1';
    person[12][2] = 'toto2';
    person[12][3] = 'toto3';
    person[12][3]=new Array();
    person[12][3][0] = 'toto4';
    person[18]=new Array();
    person[18][0] = 'titi1';
    person[18][1] = 'titi2';
    person[18][2]=new Array();
    person[18][2][0] = 'titi3';
    person[29]=new Array();
    person[29][0] = 'tutu1';
    person[74]=new Array();
    person[74][0] = 'tata1';
     
    person.splice(18,1);
     
    for (x in person)
    {
    txt=txt + person[x];
    }
     
    document.getElementById('p1').innerHTML=txt;
    Il fonctionne parfaitement, en m'affichant : "toto,toto1,toto2,toto4tutu1tata1". Je ne peut qu'en déduire que l'erreur vient de tes fonctions personnelles. Lesquelles seront difficile à corriger si l'on ignore totalement à quoi elles ressemblent

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Je vais essayer de te filer les bout de codes utiles.
    Pour éviter de saturer le message.
    Mais je me demande si tu va t'en sortir avec mon bordel de codes.

    Toutefois c'est uniquement quand j'active le splice que ca déconne.
    Là je sature et je ferais plus de test demain, dimanche
    Je vais sans doute essayer de mettre mes codes dans ton exemple, peu à peu et attendre que ca déconne.
    Merci.

    Le traitement du splice.
    C'est envoyé via ajax à une page php qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    elseif ($_POST['action'] == 6)
    {
    	$sql = "DELETE FROM LR_arts_event WHERE user_id = '".$user_id."' AND id = '".$id."'";
    	$r=mysql_query($sql) or die(mysql_error());
    	echo "array_info.splice(".$id.",1);";
    	echo "restore_view();";
    }
    La function restore
    Elle dans chargé au chargement de ma page principale. Elle est souvent utilisée. Ajax a une function retour d'active pour utiliser mes function déjà ecrites.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function restore_view()
    {
    	full = list_all_event();
    	document.getElementById('div_all_event').innerHTML = full;
    }

    La function liste_all_event est aussi chargée au chargement de ma page principale. Je te le met entière au cas où.
    Je passe les autre fonction contenue dans celle-ci, mais je te e=les donne si nécessaire. Je ferais d'autres tests Dimanche.

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    function list_all_event()
    {
     
    action = 'javascript:modif_event(0,"new_event");';
    full = "<div style='width:220px'><a href='"+action+"'><div class='mon_btn btn200'>Ajouter un évenement</div></a></div>";
     
    full += "<table class='Form_fond w590'><tr><td valign='top'>";
     
    for (val in array_info)
    {
     
    // DIV DE L'EVENT EN COURS / une pour chaque event
    full += "<div id='"+array_info[val][0]+"' style='display:block;'>";
     
    // TABLE 2 (TITRE)
    full += "<table class='Table_100 w100p'><tr><td><b>"+array_info[val][1]+"</b></td>";
     
    // AFFICHER MODIFIER SUPPRIMER
    full += "<td valign='top' align='right' width='55'><a href='javascript:show_div("+array_info[val][0]+")'>Afficher</a></td><td valign='top' align='right' width='60'><a href='javascript:modif_event(1,"+array_info[val][0]+");'>Modifier</a></td><td valign='top' align='right' width='80'><a href='javascript:send2ajax(6,0,"+array_info[val][0]+");'>Supprimer</a></td></tr>";
     
    // tr td DIV(2) (INFOS DE L'EVENT + LIEU ET DATE)
    full += "<tr><td colspan='4'><div id='info_"+array_info[val][0]+"' style='display:none;'>";
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    // TABLE(3) (EVENT)
    full += "<table class='Table_100 w100p' style='border:solid 1px #aaa'>";
     
    // ====================================
    // TR (IMAGE + INFOS)
    // IMAGE
    full += "<tr><td valign='top' style='max-width:140px'><img src='"+array_info[val][15]+"' border='0' style='margin-top:5px;margin-left:5px;max-width:133px;max-height=133px'/></td>";
     
    // TD (séparation image + EVENT)
    full += "<td>&nbsp;</td><td valign='top'>";
     
     
    // _____________________________________
    // TABLE INFOS DE L'EVENT
     
    // -------------------------------------
    // TABLE INFOS EVENT // FIN TABLE INFO EVENT
    full += insert_event_info(array_info[val][0]);
    // -------------------------------------
     
    // _____________________________________
     
    // FIN TR DANS TABLE(3b)
    full += "</td></tr><tr><td valign='top' colspan='3'><hr /></td></tr>";
    // ====================================
     
    // ====================================
    // NOUVEAU TR TD DANS TABLE(3)
    full += "<tr><td valign='top' colspan='3'>";
     
     
    // _____________________________________
    // TABLE(4b) (LISTES LIEU ET DATE)
    full += "<table class='Table_100 w100p'><tr><td align='center' width='50%'><a href='"+add_lieu+"'>Ajouter un lieu</a></td><td align='center'><a href='"+add_date+"'>Ajouter une date</a></td></tr>";
     
     
    // TR/TR MES LIEUX MES DATES
    full += "<tr><td align='center'><b>Mes lieux</b></td><td align='center'><b>Mes dates</b></td></tr>";
     
    // FIN TABLE(4b)
    full += "</table>";
    // _____________________________________
     
    // _____________________________________
    // TABLE(4c) (LISTE LIEU ET DATE)
    full += "<table class='Table_100 w100p'>";
     
    // DIV(4a) (LISTE DES LIEUX)
    // FIN DIV(4a)
    full += "<tr><td valign='top' width='50%'>";
    full += "<div id='lieu_"+array_info[val][0]+"' style='auto;display:block;'>";
    full += insert_lieu(array_info[val][0]);
    full +="</div></td>";
     
     
    // DIV(4b) (LISTE DES DATES)
    // FIN DIV(4b)
    full += "<td><div id='date_"+array_info[val][0]+"' style='max-height:200px;overflow-y:auto;display:none;'></div></td></tr><tr><td valign='top' colspan='3'>&nbsp;</td></tr>";
     
    // FIN TABLE(4c) (LISTE LIEU ET DATE)
    full += "</table>";
    // _____________________________________
     
     
    // FIN TR DANS TABLE(3)3
    full += "</td></tr>";
    // ====================================
     
    // FIN TABLE(3) (L'EVENT)
    full += "</table>";
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     
    // FIN DIV(2) POUR INFOS COMPLET DE L'EVENT 
    full += "</div>";
     
    // FIN TABLE(2) POUR TITRE + FIN DIV DE L'EVENT EN COURS
     
    full += "</td></tr></table></div>";
    }
     
    return full;
    }

  7. #7
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Ca semble intéressant mais complexe.
    Je vais m'y pencher.

    Mais tu as bien due remarquer que ma programmation était plutôt celle d'un novice (ou presque).

    Des explications en vf pour les codes serait sympa.
    Genre une copie de ton poste "pour les nuls"

    J'ai collé tous les codes dans un <script></script>
    Chez moi ca ne marche pas, ca casse le JS.
    Et Dreamweaver m'annonce un sousic ici :
    for(var i = 0, l = this.length; i < l; i++) {
    if ( -1 != a.indexOf(this[i])) && // ici


    Bonne journée

  9. #9
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    plutôt à mettre dans un fichier js
    je ne sais pas ce que fais dreamweaver

    mais à ce jour aucun interprète js n'a généré d'erreur sur ce code

    je ne sais pas ce que tu as copier mais les méthode qui t'interresse il me semble sont
    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
    //Pack delete all undéfined items
    Array.prototype.pack = function() {
      //pack defined values
      for(var i = 0, j = 0, l = this.length; i < l; i++) {
        if ( 'undefined' == typeof this[i]) {
        } else if ( j == i) {
          j++
        } else {
          this[j] = this[i]
          j++
        }
      }
      //reduce array length
      for(var i = 0, l = this.length - j; i < l; i++) {
        this.pop()
      }
      return this
    }
     
    //delete an entry
    Array.prototype.del = function(i) {
      //delete value
      if ( delete (this[i]) ) {
        this.pack()
      }
      return this
    }

    A+JYT

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Je suis allé plus loin dans mes tests.
    Je dois fouiller profondément mes codes.
    même :
    echo "array_info[".$id."][0] = 'off';";
    (avec un if != 'off après le début du FOR)
    bug un peu mais marche mieux que splice.

    Donc c'est ni ton code ni splice.
    Mais c'est encore incompréhensible.
    Peut être lié à ajax, je dois encore essayer des truc pour savoir.

    Merci d'avoir trié la fonction pour moi, c'est aussi ce que je pensais mais je n'osais pas défaire le code vu que pour le moment rien ne fonctionne comme cela devrait.

    Bonne journée

  11. #11
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (val in array_info)
    Faux! le "for ... in" ne parcours en rien un array, mais un objet !

    C'est clairement la première erreur qui saute aux yeux depuis le premier poste, étrange que personne ne l'ai mentionné après autant de réponse... :o

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Merci pour cette info.
    J'y suis arrivé en mettant 'off' dans la première value.
    Ca marche.

    Je sais que j'ai une erreur quelque part mais je ne suis pas assez doué et n'est pas assez de temps pour la dénicher.

    Merci en tout cas pour les aides qui n'ont pas étés inutiles. Je progresse.

    Bonne journée

  13. #13
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    redonne ton code complet de là où tu en es

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Par défaut
    Je te file tout mon code, mais je pense que ca va être super lourd pour vous. Donc si ca marche en ce moment, ne vous emebettez avec que si ca vous amuse

    Voila tous mes codes utiles je ne pense pas en avoir oublié, il en a sans doute en trop.

    Bonne journée


    Création de l'array:
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    // CONSTRUCTION LISTE COMPLETE
     
    // event			lieu			date			
    // 0 = id			0 = event_id	0 = event_id	
    // 1 = titre		1 = id			1 = lieu_id			
    // 2 = desc			2 = enseigne	2 = id		
    // 3 = type			3 = adresse		3 = jour			
    // 4 = type_lang	4 = adresse2	4 = du			
    // 5 = art			5 = cp 			5 = au			
    // 6 = art_lang		6 = ville		6 = de
    // 7 = langue		7 = pays		7 = a
    // 8 = langue_lang	8 = pays_lang
    // 9 = prix			9 = phone
    // 10 = reduc		10 = mail
    // 11 = forum_id
    // 12 = forum_name
    // 13 = topic_id
    // 14 = topic_title
    // 15 = img_src
     
    $chaine_id = '';
     
     
     
    $sql = "SELECT id, titre, description, art, langue, type, prix, reduc, forum_id, topic_id FROM ma_bdd_event WHERE user_id = ".$artiste_id;
    $r		= mysql_query($sql) or die(mysql_error());
    $qte	= mysql_num_rows($r);
    while($v=mysql_fetch_array($r))
    {
    	if ($chaine_id != '') {$chaine_id .= ',';}
    	$chaine_id		.=	$v['id'];
     
    	echo "
    	<script>
    	array_info[".$v[id]."] = new Array();
    	array_info[".$v[id]."][0]	= ".$v[id].";
    	array_info[".$v[id]."][1]	= '".$v[titre]."';
    	array_info[".$v[id]."][2]	= '".$v[description]."';
    	array_info[".$v[id]."][3]	= '".$v[type]."';
    	array_info[".$v[id]."][4]	= '".$user->lang[$v[type]]."';
    	array_info[".$v[id]."][5]	= '".$v[art]."';
    	array_info[".$v[id]."][6]	= '".$user->lang[$v[art]]."';
    	array_info[".$v[id]."][7]	= '".$v[langue]."';
    	array_info[".$v[id]."][8]	= '".$user->lang[$v[langue]]."';
    	array_info[".$v[id]."][9]	= '".$v[prix]."';
    	array_info[".$v[id]."][10]	= '".$v[reduc]."';
        </script>
        ";
     
    	// FORUM NAME
    	$sql = "SELECT forum_name FROM la_bdd_forums WHERE forum_id = '".$v['forum_id']."'";
    	$r0 = mysql_query($sql) or die(mysql_error());
    	$v0 = mysql_fetch_array($r0);
    	echo "
    	<script>
    	array_info[".$v[id]."][11]	= ".$v['forum_id'].";
    	array_info[".$v[id]."][12]	= '".$v0[forum_name]."';
        </script>
        ";
    	mysql_free_result($r0);
     
    	// TOPIC TITLE
    	$sql = "SELECT topic_title FROM ma_bdd_topics WHERE topic_id = '".$v['topic_id']."' AND topic_poster = ".$user->data['user_id'];
    	$r0	= mysql_query($sql) or die(mysql_error());
    	$v0 = mysql_fetch_array($r0);
    	echo "
    	<script>
    	array_info[".$v[id]."][13]	= ".$v['topic_id'].";
    	array_info[".$v[id]."][14]	= '".$v0[topic_title]."';
        </script>
        ";
    	mysql_free_result($r0);
     
        // SRC IMAGE
    	$img	= get_image('event',$v[id][0]);
    	echo "
    	<script>
    	array_info[$v[id]][15]	= '".$img."';
        </script>
        ";
     
        // LIEU
    	echo "
    	<script>
    	array_info[".$v[id]."]['lieu']= new Array();
    	</script>
    	";
    }
    mysql_free_result($r);
     
     
    if ($chaine_id != '')
    {
    	// AJOUT DES LIEUX
    	$sql = "SELECT id, event_id, enseigne, adresse, adresse2, cp, ville, pays, phone, mail FROM ma_bdd_arts_event_lieu WHERE user_id = ".$artiste_id." AND event_id IN(".$chaine_id.")";
    	$r		= mysql_query($sql) or die(mysql_error());
    	$qte	= mysql_num_rows($r);
    	while($v=mysql_fetch_array($r))
    	{
    		if ($chaine_lieu_id != '') {$chaine_lieu_id .= ',';}
    		$chaine_lieu_id		.=	$v['id'];
     
        	echo "
    		<script>
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."] = new Array();
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][0]	= ".$v[event_id].";
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][1]	= ".$v[id].";
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][2]	= '".$v[enseigne]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][3]	= '".$v[adresse]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][4]	= '".$v[adresse2]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][5]	= '".$v[cp]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][6]	= '".$v[ville]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][7]	= '".$v[pays]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][8]	= '".$user->lang[$v[pays]]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][9]	= '".$v[phone]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."][10]= '".$v[mail]."';
    		</script>
            ";
     
    	    // LIEU
    		echo "
    		<script>
    		array_info[".$v[event_id]."]['lieu'][".$v[id]."]['date']= new Array();
    		</script>
    	";
    	}	
    }
     
    if ($chaine_lieu_id != '')
    {
     
    	// AJOUT DES DATES
    	$sql = "SELECT id, event_id, lieu_id, jour, du, au, de, a FROM ma_bdd_arts_event_date WHERE user_id = ".$artiste_id." AND event_id IN(".$chaine_id.") AND lieu_id IN(".$chaine_lieu_id.")";
    	$r		= mysql_query($sql) or die(mysql_error());
    	$qte	= mysql_num_rows($r);
    	while($v=mysql_fetch_array($r))
    	{
        	echo "
    		<script>
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."]		= new Array();
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][0]	= ".$v[event_id].";
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][1]	= ".$v[lieu_id].";
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][2]	= ".$v[id].";
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][3]	= '".$v[jour]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][4]	= '".$v[du]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][5]	= '".$v[au]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][6]	= '".$v[de]."';
    		array_info[".$v[event_id]."]['lieu'][".$v[lieu_id]."]['date'][".$v[id]."][7]	= '".$v[a]."';
    		</script>
            ";
    	}	
    }

    function qui crée le contenu de la page
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    function list_all_event()
    {
     
    action = 'javascript:modif_event(0,"new_event");';
    full = "<div style='width:220px'><a href='"+action+"'><div class='mon_btn btn200'>Ajouter un évenement</div></a></div>";
     
    full += "<table class='Form_fond w590'><tr><td valign='top'>";
     
    qte = 0;
    for (val in array_info)
    {
    if (array_info[val][0] != 'off')
    {
    qte++;
    // DIV DE L'EVENT EN COURS / une pour chaque event
    full += "<div id='"+array_info[val][0]+"' style='display:block;'>";
     
    // TABLE 2 (TITRE)
    full += "<table class='Table_100 w100p'><tr><td><b>"+array_info[val][1]+"</b></td>";
     
    // AFFICHER MODIFIER SUPPRIMER
    full += "<td valign='top' align='right' width='55'><a href='javascript:show_div("+array_info[val][0]+")'>Afficher</a></td><td valign='top' align='right' width='60'><a href='javascript:modif_event(1,"+array_info[val][0]+");'>Modifier</a></td><td valign='top' align='right' width='80'><a href='javascript:send2ajax(6,0,"+array_info[val][0]+");'>Supprimer</a></td></tr>";
     
    // tr td DIV(2) (INFOS DE L'EVENT + LIEU ET DATE)
    full += "<tr><td colspan='4'><div id='info_"+array_info[val][0]+"' style='display:none;'>";
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    // TABLE(3) (EVENT)
    full += "<table class='Table_100 w100p' style='border:solid 1px #aaa'>";
     
    // ====================================
    // TR (IMAGE + INFOS)
    // IMAGE
    full += "<tr><td valign='top' style='max-width:140px'><img src='"+array_info[val][15]+"' border='0' style='margin-top:5px;margin-left:5px;max-width:133px;max-height=133px'/></td>";
     
    // TD (séparation image + EVENT)
    full += "<td>&nbsp;</td><td valign='top'>";
     
     
    // _____________________________________
    // TABLE INFOS DE L'EVENT
     
    // -------------------------------------
    // TABLE INFOS EVENT // FIN TABLE INFO EVENT
    full += insert_event_info(array_info[val][0]);
    // -------------------------------------
     
    // _____________________________________
     
    // FIN TR DANS TABLE(3b)
    full += "</td></tr><tr><td valign='top' colspan='3'><hr /></td></tr>";
    // ====================================
     
    // ====================================
    // NOUVEAU TR TD DANS TABLE(3)
    full += "<tr><td valign='top' colspan='3'>";
     
     
    // _____________________________________
    // TABLE(4b) (LISTES LIEU ET DATE)
    full += "<table class='Table_100 w100p'><tr><td align='center' width='50%'><a href='"+add_lieu+"'>Ajouter un lieu</a></td><td align='center'><a href='"+add_date+"'>Ajouter une date</a></td></tr>";
     
     
    // TR/TR MES LIEUX MES DATES
    full += "<tr><td align='center'><b>Mes lieux</b></td><td align='center'><b>Mes dates</b></td></tr>";
     
    // FIN TABLE(4b)
    full += "</table>";
    // _____________________________________
     
    // _____________________________________
    // TABLE(4c) (LISTE LIEU ET DATE)
    full += "<table class='Table_100 w100p'>";
     
    // DIV(4a) (LISTE DES LIEUX)
    // FIN DIV(4a)
    full += "<tr><td valign='top' width='50%'>";
    full += "<div id='lieu_"+array_info[val][0]+"' style='auto;display:block;'>";
    full += insert_lieu(array_info[val][0]);
    full +="</div></td>";
     
     
    // DIV(4b) (LISTE DES DATES)
    // FIN DIV(4b)
    full += "<td><div id='date_"+array_info[val][0]+"' style='max-height:200px;overflow-y:auto;display:none;'></div></td></tr><tr><td valign='top' colspan='3'>&nbsp;</td></tr>";
     
    // FIN TABLE(4c) (LISTE LIEU ET DATE)
    full += "</table>";
    // _____________________________________
     
     
    // FIN TR DANS TABLE(3)3
    full += "</td></tr>";
    // ====================================
     
    // FIN TABLE(3) (L'EVENT)
    full += "</table>";
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     
    // FIN DIV(2) POUR INFOS COMPLET DE L'EVENT 
    full += "</div>";
     
    // FIN TABLE(2) POUR TITRE + FIN DIV DE L'EVENT EN COURS
     
    full += "</td></tr></table></div>";
    }
    // fin du if off 
     
    }
    if (qte == 0){full = "<div style='width:220px'><a href='"+action+"'><div class='mon_btn btn200'>Ajouter un évenement</div></a></div><table class='Form_fond w590'><tr><td valign='top'>Aucune référence trouvée. Actualisez la page si besoin.</td></tr></table></div>"};
    return full;
    }
    Divers function utiles
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    function check_display(i)
    {
    	i	= document.getElementById(i).style.display;
    	if ((i == 'inline') || (i == '') || (i == 'block'))
    	{i = 'block';} 
    	else {i = 'none';}
    	return i;
    }
     
    function open_close(i)
    {
        $('#'+i).animate({height:'toggle'});
    }
     
     
    function restore_view()
    {
    	full = list_all_event();
    	document.getElementById('div_all_event').innerHTML = full;
    }
     
     
     
    function show_div(source,lieu,date)
    {
    	// source	: event_id
     
    	// etat actuel de la div source
    	d_event = check_display('info_'+source);
     
    	for (val in array_info)
    	{
    		if (array_info[val][0]  != 'off')
    		{
    			if ((document.getElementById('info_'+array_info[val][0]).style.display	!= 'none') && (source != array_info[val][0]))
    			{open_close('info_'+array_info[val][0]);}
    		}
    	}
     
    	document.getElementById('info_'+source).style.display	= d_event;
    	open_close('info_'+source);
    }
     
    function check_div(i)
    {
    	// done 0 = correction d'une erreur
    	// done 1 = normal / pas d'erreur
     
    	// i == ID de l'event
    	// la div d_event soit (i) doit toujours etre ouverte
     
    	d_liste	= check_display('div_all_event');
    	d_modif	= check_display("modif");
     
    	done = '1';
    	if (i != 'new_event')
    	{
     
    	d_event	= check_display(i);
    	d_info	= check_display("info_"+i);
     
    	if (d_event == 'none')	{open_close(i);}
    	if (d_info == 'none')	{open_close('info_'+i);}
     
    	// SI LISTE ET MODIF SONT FERMES
    	if ((d_liste == 'none') && (d_modif == 'none'))
    	{
    		document.getElementById('div_all_event').style.display	= 'none';
    		document.getElementById(i).style.display				= 'none';
    		document.getElementById('info_'+i).style.display		= 'none';
    		document.getElementById('modif').style.display			= 'none';
    		open_close('div_all_event');
    		open_close(i);
    		open_close('info_'+i);
    		done = '0';
    	}


    function pour ajax
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    function send2ajax(action,i,id)
    {
    	f=document.event_form; // f est l'objet formulaire
    //	action
    //	 0) 'new_event'
    //	 1) 'modif_event'
    //	 2) 'new_lieu'
    //	 3) 'modif_lieu'
    //	 4) 'new_date'
    //	 5) 'modif_date'
    //	 6) 'delete_event'
    //	 7) 'delete_lieu'
    //	 8) 'delete_date'
     
    //	i
    //	 0) 'close'
    //	 1) 'next'
    //	 2) 'lieu_date'
     
    	if ((action == 0) || (action == 1))
    	{
    		//  VERIFICATION DES DONNEES
    		if(f.titre.value=="")		{mes+="\n- Le titre de l'evenement";}
    		if(f.description.value=="")	{mes+="\n- La description";}
    		if(f.type.value=="")		{mes+="\n- Le type";}
    		if(f.art.value=="")			{mes+="\n- Le domaine artistique";}
    		if(f.langue.value=="")		{mes+="\n- La langue principale";}
    		if(f.prix.value=="")		{mes+="\n- Le prix";}
    		if(mes!="")					{alert("Merci de remplir :"+mes);return false;}
     
     
    		for (num in art_liste)
    		{if (art_liste[num] == f.art.value){art_lang = num;}}
     
    		for (num in type_liste)
    		{if (type_liste[num] == f.type.value){type_lang = num;}}
     
    		for (num in langue_liste)
    		{if (langue_liste[num] == f.langue.value){langue_lang = num;}}
     
    		for (num in dossier_liste)
    		{if (num == f.dossier.value){forum_name = dossier_liste[num];}}
     
    		for (num in fiche_liste)
    		{if (num == f.fiche.value){topic_title = fiche_liste[num];}}
     
    		// PREPARATION DES DONNEES
    		info ="action="+action;
    		info+="&act2="+i;
    		info+="&user_id="+user_id
    		if (id != '') {info += '&id='+id;}
    		info+="&titre="+f.titre.value;
    		info+="&description="+f.description.value;
    		info+="&type="+f.type.value;
    		info+="&type_lang="+type_lang;
    		info+="&art="+f.art.value;
    		info+="&art_lang="+art_lang;
    		info+="&langue="+f.langue.value;
    		info+="&langue_lang="+langue_lang;
    		info+="&prix="+f.prix.value;
    		info+="&reduc="+f.reduc.value;
    		info+="&dossier="+f.dossier.value;
    		info+="&forum_name="+forum_name;
    		info+="&fiche="+f.fiche.value;
    		info+="&topic_title="+topic_title;
    		info+="&artiste_forum_id="+artiste_forum_id;
    	}
     
    	else if ((action == 2) || (action == 3))
    	{
    		//  VERIFICATION DES DONNEES
    		if(f.titre.value=="")		{mes+="\n- Le titre de l'evenement";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    		if(f.titre.value=="")		{mes+="\n- titre ";}
    	}
     
    	else if ((action == 6) || (action == 7) || (action == 8))
    	{
    		info  = 'action='+action;
    		info += '&id='+id;
    		info += '&user_id='+user_id
    	}
     
    		run_ajax('form_result_event.php',info); // on appelle la fonction 
    }
     
    function run_ajax(file,data)
    {
    	var reg=new RegExp(" ", "g");
    	data=data.replace(reg,"%20");
    	//alert(file+"/"+donnees);
    	var xhr_object = null;
    	if(window.XMLHttpRequest) // Si Firefox
    		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // Si Internet Explorer
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
    	{
    		// XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		return;
    	}
    	xhr_object.open("POST", "./"+file, true);
    	xhr_object.onreadystatechange = function() 
    	{
    		if(xhr_object.readyState == 4)
    		// alert(xhr_object.responseText);
    		eval(xhr_object.responseText);
    	}
    	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	xhr_object.send(data);
    }

    Traitement de la bdd et application sur l'array JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	$id					= $_POST['id'];
    	$user_id			= $_POST['user_id'];
     
    elseif ($_POST['action'] == 6)
    {
    	$sql = "DELETE FROM ma_bdd_arts_event WHERE user_id = '".$user_id."' AND id = '".$id."'";
    	$r=mysql_query($sql) or die(mysql_error());
     
    	echo "array_info[".$id."][0] = 'off';"; 
    // J'ai supprimé le splice
     
    	echo "restore_view();";
    }

Discussions similaires

  1. Supprimer plusieurs lignes d'un array
    Par Guignon dans le forum Langage
    Réponses: 3
    Dernier message: 07/01/2015, 16h57
  2. Supprimer une ligne dans un array
    Par Orel01 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/12/2009, 22h34
  3. supprimer une ligne donnée d'un array
    Par BYALI dans le forum Langage
    Réponses: 6
    Dernier message: 16/07/2008, 15h13
  4. Réponses: 1
    Dernier message: 13/03/2008, 12h13
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo