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

AJAX Discussion :

[AJAX] Modification "inline" de données avec AJAX


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut [AJAX] Modification "inline" de données avec AJAX
    Bonjour tout le monde,

    Je m'intéresse depuis peu à ce tutorial :
    http://olance.developpez.com/article...cation-inline/

    Je ne suis pas un grand expert mais le zip fourni fonctionne parfaitement et cela me convient pour mes petites créations

    Par contre l'explicatif est donné pour une seule table (inlinemod dans le tuto) avec plusieurs champs.

    J'utilise des pages qui comportent plusieurs requêtes différentes , donc appel de plusieurs champs dans une seule page.

    Est ce qu'il faut créer les fichiers sauverMod.php + inlinemod.js pour chaques tables ?

    Merci pour vos réponses ^^

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Personnellement, vu comment la source est conçu je dirais que tu pourrais éviter tout ceci.
    Une chose qui peut être faite c'est de rajouter une variable dans l'appel des fonctions sauverMod et inlineMod. Il pourrait être par exemple le nom de la table ou autre identifiant qui pourrait te permettre de différencier la table à mettre à jour. Enfin dans le fichier PHP tu fais ton test et la requête qui correspond.

    Ca peut être une solution mais il y a beaucoup d'autres.

  3. #3
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut
    L'inconvenient pour moi est qu'une telle "modification" est au dessus de mes connaissances, si eventuellement une nouvelle source pouvait être concue cela pourrait tout autant servir à d'autres personnes

  4. #4
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut
    J'ai même fait quelques tests avec les appels du genre matable.monchamp pour appeler les 2 tables avec leur champs mais ca n'as pas fonctionné

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    J'avais le même problème que toi que j'ai résolu en modifiant un peu le code :

    I/ dans ta page web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td id="prenom-'.$res['id'].'" class="cellule" ondblclick="inlineMod('.$res['id'].', this, \'prenom\', \'texte\', \'nomtable\')">'.$res['prenom'].'</td>
    II/ dans le script :
    1. modifier toutes les lignes comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function inlineMod(id, obj, nomValeur, type, table)
    Ligne : 116, 169, 182, 192

    2. Modifier la requete get : ligne 220 : ajout de "+ "&table=" + table"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XHR.open("GET", "ajax/inlinemod/sauverMod.php?id=" + id + "&champ=" + nomValeur + "&valeur=" + escape(valeur) + "&type=" + type + "&table=" + table + ieTrick(), true);
    III/ Recupérer la valeur de table dans le fichier de traitement.
    Il reste plus qu'à créer une variable à placer dans ta requete SQL.


    J'espère avoir répondu à ton problème...

  6. #6
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut
    Salut, merci pour ce super coup de pousse, jai bien réussi à comprendre pour les modification des fichiers principaux, cependant je n'ai pas compris la fin :
    III/ Recupérer la valeur de table dans le fichier de traitement.
    Il reste plus qu'à créer une variable à placer dans ta requete SQL.
    Je suppose qu'il s'agit de modifier le fichier sauverMod.php ? si oui la je ne sais pas vraiment ce que voulais m'expliquer
    Si tu pouvais m'en dire plus super cool d'avance ^^

  7. #7
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut modification inline
    Citation Envoyé par albedo0 Voir le message
    J'avais le même problème que toi que j'ai résolu en modifiant un peu le code :

    I/ dans ta page web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td id="prenom-'.$res['id'].'" class="cellule" ondblclick="inlineMod('.$res['id'].', this, \'prenom\', \'texte\', \'nomtable\')">'.$res['prenom'].'</td>
    II/ dans le script :
    1. modifier toutes les lignes comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function inlineMod(id, obj, nomValeur, type, table)
    Ligne : 116, 169, 182, 192

    2. Modifier la requete get : ligne 220 : ajout de "+ "&table=" + table"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XHR.open("GET", "ajax/inlinemod/sauverMod.php?id=" + id + "&champ=" + nomValeur + "&valeur=" + escape(valeur) + "&type=" + type + "&table=" + table + ieTrick(), true);
    III/ Recupérer la valeur de table dans le fichier de traitement.
    Il reste plus qu'à créer une variable à placer dans ta requete SQL.


    J'espère avoir répondu à ton problème...
    Bjr Albedo, j'ai le même probleme que je n'arrive pas à résoudre via ton exemple:
    voici mon code:
    dans la page index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $requete_resume = "SELECT `psychrosoft`.`restps`.resume
                      FROM `psychrosoft`.`restps`
    				  WHERE `psychrosoft`.`restps`.jour=$res
    				  AND `psychrosoft`.`restps`.mois=$lemois 
    				  AND `psychrosoft`.`restps`.annee=$lannee";
    $resultat_resume = mysql_query($requete_resume)or die ('requête non executée6 car'.mysql_error().'.');
    $resume = mysql_fetch_row($resultat_resume);
    $resum=($resume[0]=="0")?("."):($resume[0]);
    	echo"<tr><td>".$res."</td><td id=\"".$res."\" style=\"vertical-align: center; text-align: left; font-size:12pt; 
    	font-family: 'LearningCurveProRegular', monotype corsiva, serif; cursor: pointer;\" ";
    	echo 'ondblclick="inlineMod('.$res.', this, \'resume\', \'texte-multi\', \''.$lemois.'\', \''.$lannee.'\')">';
    	echo $resum."</td><td></td></tr>";
    dans le script inlineMod.js: les lignes 116, 169, 182, 192, 220
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function inlineMod(id, obj, nomValeur, type, mes, anio)
    sauverMod(id, obj, nomValeur, input.value, type, mes, anio);
    sauverMod(id, obj, nomValeur, input.value, type, mes, anio);
    function sauverMod(id, obj, nomValeur, valeur, type, mes, anio)
    XHR.open("GET", "sauverMod.php?id=" + id + "&champ=" + nomValeur + "&valeur=" + escape(valeur) + "&type=" + type + "&mes=" + mes + "&anio=" + anio + ieTrick(), true);
    dans le script sauverMod.php:
    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
     
    	$DB_TABLE_NAME = "restps";
    //On sort en cas de paramètre manquant ou invalide
    if(empty($_GET['id']) or empty($_GET['type']) or empty($_GET['champ']) or empty($_GET['valeur'])
       or !is_numeric($_GET['id']))
    {
        exit;
    }
     
    switch($_GET['type'])
    {
        case 'texte':
        case 'texte-multi':
            $sql  = 'UPDATE `'.$DB_TABLE_NAME;
            $sql .= '` SET ' . mysql_real_escape_string($_GET['champ']) . '="';
            $sql .= mysql_real_escape_string($_GET['valeur']) . '" WHERE jour=' . intval($_GET['id']).'AND
    		mois='.intval($_GET['mes']).'AND annee='.intval($_GET['anio']);
            break;
     
        default:
            exit;
    }
    J'aimerais que vous m'aidiez à trouver ce qui ne va pas dans mon code, SVP

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/05/2011, 17h47
  2. [AJAX] Modification "inline" de données avec AJAX
    Par isa150183 dans le forum AJAX
    Réponses: 1
    Dernier message: 04/12/2009, 00h21
  3. [AJAX] modification "inline" de données avec un <select>
    Par aztec dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/05/2008, 20h11
  4. Réponses: 3
    Dernier message: 21/11/2006, 14h28
  5. [AJAX] Modification "inline" de données avec AJAX
    Par Bestiol dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/08/2006, 14h01

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