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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2010
    Messages : 86
    Points : 47
    Points
    47

    Par défaut Ajax live table + upload image

    Bonjour,

    Je vous contact, car j'ai suivi le tuto suivant : "https://www.webslesson.info/2018/02/ajax-multiple-image-upload-with-edit-delete-using-php-mysql.html"

    Petit résumé du fonctionnement et de mon souci :

    Le tableau principale (avec le bouton "Edit") est généré par le fichier "fetch.php".
    Quand on "clic" sur le bouton "Edit" qui appartient à la "class" "edit", cela fait appel à la "fonction" "jquery" qui est appelée lorsque qu'un "clic" est réalisé sur un objet qui a la "class" "edit".
    La fonction "jquery" envoi l' "id" au format "json" au fichier "edit.php" qui lui fait un "select" en base afin de récupérer les différentes données en base pour afficher le "modal" "edit".

    Dans le fichier "edit.php", nous avons ça après le select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach($result as $row)
    {
     $file_array = explode(".", $row["objet_image"]);
     $output['objet_image'] = $file_array[0];
     $output['objet_nom'] = $row["objet_nom"];
    }
    Je crois ne pas avoir très bien compris cette partie, je pense que 3 variables sont déclarées avec les valeurs en base.

    Quand nous retournons dans notre "fonction" "jquery", nous avons ça en retour "success:function" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            success:function(data) {
     
                $('#imageModal').modal('show');
                $('#id').val(id);
                $('#objet_image').val(data.objet_image);
                $('#objet_nom').val(data.objet_nom);
                // CE QUE JE SOUHAITE : créer une variable utilisable dans php qui a la valeur d' "objet_nom"
                console.log(data);
            }
    Les valeurs des ID sont utilisées pour alimenter les "input" du formulaire et récupérées par le "success:function".

    Mais de mon côté, je souhaite créer une variable utilisable dans php qui a la valeur d' "objet_nom".

    Une idée ?

    Par avance merci

  2. #2
    Membre éprouvé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 680
    Points : 1 030
    Points
    1 030

    Par défaut

    Salut,
    Citation Envoyé par LuffyyffuL
    Je crois ne pas avoir très bien compris cette partie, je pense que 3 variables sont déclarées avec les valeurs en base.
    c'est vrai que la boucle foreach est étrange dans ce cas, vu que chaque image est identifiée par un id unique dans la base, donc $result (le résultat de la requête mysql) doit retourner une seule ligne, pas plus.

    je ne vois pas l'utilité d'utiliser une boucle.

    le code suivant est suffisant dans edit.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $output['objet_image']=$result[0]["objet_image"];
     $output['objet_nom'] = $result[0]["objet_nom"];
     echo json_encode($output);

    la ligne
    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(data);
    renvoi quoi comme résultat ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2010
    Messages : 86
    Points : 47
    Points
    47

    Par défaut

    Merci pour ton retour, j'ai ça dans le console.log :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {objet_image: "Fond blanc", objet_nom: "Fond blancFond blancFond blanc"}
    objet_image: "Fond blanc"
    objet_nom: "Fond blancFond blancFond blanc"

  4. #4
    Membre éprouvé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 680
    Points : 1 030
    Points
    1 030

    Par défaut

    tu as ça dans la console même en supprimant la boucle foreach dans edit.php et la remplacer par
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $output['objet_image']=$result[0]["objet_image"];
    $output['objet_nom'] = $result[0]["objet_nom"];
    ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2010
    Messages : 86
    Points : 47
    Points
    47

    Par défaut

    Alors dans le fichier "edit.php", si je mets ça :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $output['objet_image'] = $row["objet_image"];
    $output['objet_nom'] = $row["objet_nom"];

    A la place de ça :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($result as $row)
    {
    $file_array = explode(".", $row["objet_image"]);
    $output['objet_image'] = $file_array[0];
    $output['objet_image'] = $row["objet_image"];
    $output['objet_nom'] = $row["objet_nom"];
    }

    J'ai ça dans le log.console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {objet_image: null, objet_nom: null}
    objet_image: null
    objet_nom: null
    __proto__: Object

  6. #6
    Membre éprouvé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 680
    Points : 1 030
    Points
    1 030

    Par défaut

    ce que tu as écris :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $output['objet_image'] = $row["objet_image"];
    $output['objet_nom'] = $row["objet_nom"];

    ce que j'ai suggéré :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $output['objet_image'] = $result[0]["objet_image"];
    $output['objet_nom'] = $result[0]["objet_nom"];

    les deux codes sont différents, il faut mettre $result[0]['objet_image'] au lieu de $row['objet_image'], la même chose pour objet_nom..

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2010
    Messages : 86
    Points : 47
    Points
    47

    Par défaut

    J'ai corrigé mais même résultat.

    En gros, ce que je souhaite faire, c'est ajouter un "select" "état" par exemple avec "2 options" "OK" et "KO" dans le modal "edit".

    Récupérer en base la valeur de "état" et l'afficher en première position dans ma liste déroulante (le select donc).

    Puis, dès que je change la valeur (OK ou KO) et que je valide, ça change en base la valeur.

  8. #8
    Membre éprouvé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2012
    Messages : 680
    Points : 1 030
    Points
    1 030

    Par défaut

    il te faut d'abord créer un champ dans ta table que tu nommes par exemple "etat", ayant un type de donnée (de préférence INT) et qu'il stocke 3 valeurs (0,1,2), 0=non attribué,1=Ok et 2=Ko.
    après tu ajoute ton select dans la fenêtre modale d'édition, avec des attributs name et id.
    ensuite tu modifies plusieurs lignes dans les fichiers php de l'exemple (fetch.php,edit.php,update.php,upload.php)...
    d'après ce que je vois, il y a beaucoup de travail à faire.

Discussions similaires

  1. [AJAX] xmlhttprequest level2 (upload image)
    Par strauss69300 dans le forum AJAX
    Réponses: 0
    Dernier message: 14/02/2012, 11h28
  2. [AJAX] Upload image en ajax
    Par Laurelaie dans le forum AJAX
    Réponses: 4
    Dernier message: 15/10/2009, 14h21
  3. [AJAX] Rafraichir / upload image
    Par vince.bbob dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/04/2008, 21h42
  4. [AJAX] upload image + recup variable
    Par minimoof dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 31/05/2007, 22h57
  5. pb upload image et update table
    Par digger dans le forum PHP & MySQL
    Réponses: 9
    Dernier message: 12/11/2005, 15h09

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