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

Langage PHP Discussion :

AJAX / Insérer des données dans un array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Par défaut AJAX / Insérer des données dans un array
    Bonjour,
    Je sais que cette question a été posé à maintes reprises mais la je ne comprends tout simplement pas...
    J'ai un tableau en HTML et à chaque clic sur une des lignes, elle se sélectionne ou se deselectionne en envoyant un POST en AJAX avec l'id de la ligne à une page de traitement pour le stocker dans un array $SESSION['selection']. Le problème c'est que seul le dernier élément sélectionné se trouve dans l'array de $SESSION et ma suppression ne marche pas (j'ai une erreur 500 internal server error).
    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
     
    <?php
    session_start();
    if(!isset($_SESSION['selection']))	
    {
    	$_SESSION['selection'] = array();
    }
     
     
    if(isset($_POST['action']) && isset($_POST['id']))
    {
    	if($_POST['action'] == 'add') 
    	{
    		$_SESSION['selection'] = $_POST['id'];
    		//array_push($_SESSION['selection'],$_POST['id']);
    	}
    	else	
    	{
    		$cle = array_search($_POST['id'], $_SESSION['selection']);
    		unset($_SESSION['selection'][$cle]);
    	}
    }
    ?>
    Je ne pense pas que cela vienne de mon POST j'ai vérifié avec l'outil de developpeur et les bonnes infos sont envoyées sur la bonne page.
    je ne pense pas non plus que cela vienne de mon affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r($_SESSION['selection']);
    Si quelqu'un sait d'où peuvent venir ces problémes et me l'expliquer ce serait vraiment gentil =).

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start();
    if (isset($_POST['action'], $_POST['id']))
    {
    	if($_POST['action'] == 'add') 
    	{
    		$_SESSION['selection'][$_POST['id']] = $_POST['id'];
    	}
    	else	
    	{
    		unset($_SESSION['selection'][$_POST['id']]);
    	}
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Par défaut
    Bonjour et merci pour votre réponse.

    Effectivement il serait plus simple de procéder comme cela, seulement j'avais oublié de préciser que "id" n'est pas un nombre mais une chaine ...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ça marche quand même.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Par défaut
    Ah oui en effet, j'avais oublié que les clés ne sont pas obligé d’êtres des nombres.
    Par contre je ne comprends pas vraiment car même si mon code était plus long et moins pratique, je ne voyais pas d'erreur qui porrait empecher son fonctionnement...
    En tout cas merci pour votre aide.

    EDIT j'ai une autre petite question en rapport, je la poste ici comme ça suis le raisonnement, si ça ne va pas dites moi que je la déplace.

    Je veux juste implémenter un bouton pour vider le tableau $_SESSION['selection']
    je fais donc cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <input type=button value="supprimer SESSION" onClick="effacer()" />
    <script>
    	function effacer()
    	{
    		<?php $_SESSION['selection'] = array(); ?>
    	}
    </script>
    Quand j'ajoute cette fonction, mon tableau de SESSION est vidé à chaque changement de page, alors qu'il devrait ne l'être que lors de l'appuie sur le bouton non?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton problème était que tu écrasais la valeur à chaque fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['selection'] = $_POST['id'];
    PHP est executé sur le serveur. Javascript par le navigateur. Tu ne peux donc pas avoir du code PHP dans une fonction Javascript.
    Si tu veux declencher du PHP depuis Javascript il faut utiliser Ajax.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insérer des données dans un tableau lors d'une boucle
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/05/2007, 09h19
  2. Insérer des données dans une BD depuis un fichier .bat
    Par kurkaine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/11/2006, 08h31
  3. [VB.Net] Comment insérer des données dans des tables ?
    Par shakoulé dans le forum Accès aux données
    Réponses: 2
    Dernier message: 23/09/2006, 21h46
  4. Réponses: 26
    Dernier message: 01/07/2006, 13h14
  5. Insérer des données dans ma BDD
    Par griese dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 28/06/2006, 09h34

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