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 :

Modifier des données à distance


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut Modifier des données à distance
    Bonjour,

    j'ai des images que je souhaites trier.
    j'ai ajouter à coté de chaque images un petit champ <input>
    pour que l'utilisateur écrive un numéro.

    Tout en bas de ma page, j'ai une balise <form> avec un envoi de données par POST.

    Malheureusement je ne sais pas comment rattacher le bouton "MODIFIER" par toutes mes données <input>


    Dans l'affichage, je fais un ORDER BY "num" qui correspond au numéros de chaque images.

    Y à t'il moyen de modifier tout un tas de données d'un seul coup ?
    Merci de m'éclairer la dessus car je ne sais vraiment pas comment faire !
    @+++

  2. #2
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Du code aurait été bienvenu, mais bon, pour les grand principes :

    Via un form, toutes les input que tu veux envoyer doivent être contenues entre les balises <form> et </form>. De ce fait, il faut un nom différent pour chaque input.

    Une autre option consiste à passer par un javascript.

    Dans tous les cas, il te faudra dans la page de réception une procédure capable de traiter les noms dynamiques de variables...

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo '<form method="POST" action="page2.php">';
    for($i=0;$i<100;$i++)
       echo 'champ '.$i.' : <input type="texte" name="MON_INPUT_'.$i.'"><br>';
    echo '<input type="submit"></form>';
    Va te créer dynamiquement 100 champs de saisie. Dans ton cas, tu peux remplacer $i par ton ID d'image.

    dans page2.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($_POST as $key => $val)
    {
       if(strlen($val) && preg_match("#^MON_INPUT_([0-9]+)$#is", $key, $res))
          echo 'Le champ N° '.$res[1].' contient la valeur '.$val.'<br>';
    }

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Bonjour,

    Le code de comode ne fonctionnera que si et seulement si tes identifiants de photos ne comprennent pas de sauts d'id.

    Autrement dit, si tu as trois images
    1
    2
    3
    et que tu supprimes la 2, le code de Comode prendra

    1
    -
    2
    Pourquoi ne pas faire la modification en deux temps? Est-ce vraiment indispensable en un seul? Si oui, il faudra l'usage d'un langage asynchrone, faire de l'ajax pourquoi pas.

    Lui demander de sélectionner les champs avec checkbox puis, dans la page suivante, faire une requête rattachant l'id de chaque image à son véritable numéro pour ensuite le modifier?

    Autre chose à laquelle je pense, tu dis utiliser des inputs puis, en bas de page, un form.

    Ceci est sujet à qui pro quo.
    En effet, en te lisant, on a l'impression que tes inputs sont en dehors du form, si tel est réellement le cas, tes inputs ne seront pas gérés.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  4. #4
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Bonjour,

    Le code de comode ne fonctionnera que si et seulement si tes identifiants de photos ne comprennent pas de sauts d'id.

    Autrement dit, si tu as trois images


    et que tu supprimes la 2, le code de Comode prendra
    Heuuu pas du tout !?
    La boucle for(), c'est juste pour faire un exemple avec un grand nombre de champs... Ca marchera sans aucun problème avec des numéro qui ne se suivent pas, et si tu mets l'id de ton image à la fin de MON_INPUT_ dans le nom des <input>, c'est ce même id que tu récupéreras dans $res[1]. Je confirme donc que mon code est bien associatif et fonctionne dans tous les cas de figure aussi longtemps que l'ID est un entier...

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    hello, merci pour vos réponses !

    En effet, en te lisant, on a l'impression que tes inputs sont en dehors du form, si tel est réellement le cas, tes inputs ne seront pas gérés.
    C'est exactement ça !
    C'est ce que je voulais savoir en fait...

    J'ai bien compris le problème, maintenant, il va falloir que je trouve une solution.

    En fait, du moment que j'arrive à résoudre mon problème, je suis preneur de n'importe quelle solution, d'ailleurs, je ne sais même pas si j'ai réellement besoin d'un formulaire pour ça.

    Sur l'interface utilisateur que je suis en train de créer, j'ai une série de photos, qui apparaissent dans l'ordre ou on les insère..

    Je voulais qu'a tout moment on puisse changer l'ordre d'apparition des photos.
    C'est pour ça que j'ai imaginer une solution d'input a coté des photos ou l'on pourrais rentrer un nombre puis valider pour réorganiser l'affichage des images.


    C'est pour ça que je n'ai pas mis de "code"
    Je préfère savoir vraiment quel solution est la meilleur avant de me lancer dans l'opération.

    En tout cas voici comment j'affiche mes images :


    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
     
    <?php
    //   RECUPERATION DE LA BASE DE DONNEE  !
    mysql_connect($localHost, $sql_name, $sql_pass);
    mysql_select_db($sql_db);
    $reponse = mysql_query("SELECT * FROM photos WHERE catName='$nomDeLaCategorie' ORDER BY num") or die(mysql_error());
    ////////////
    while ($donnees = mysql_fetch_array($reponse) ){
    ?>
    <div id="ensemble">
    <div id="pictIcon">
    <a href="<?php echo $donnees['photoLinkBig'];  ?>"> <img src="<?php echo $donnees['photoLinkSmall'];  ?>"> </img> </a>
    </div>
    <div id="titrePhoto">
    <?php echo $donnees['photoTitle'];  ?>          
    <INPUT TYPE="text" NAME="numero" SIZE="1" MAXLENGTH="2" VALUE="<?php echo $donnees['num']; ?>" > 
    </div>
    <div id="descrPhoto">
    <?php echo $donnees['photoDescr'];  ?>
    </div>
    <div id="supprPhoto">
    <a href="inCat.php?id=<?php echo $donnees['id'] ?>&linkSmall=<?php echo $donnees['photoLinkSmall'] ?>&linkBig=<?php echo $donnees['photoLinkBig'] ?>" class ="delete">X</a>
    </div>
    </div>
    </br>
    <?php
    }
    ?>
    Comme vous voyez, j'ai mis un order by num, et c'est ces numéros que j'aimerais pouvoir modifier pour réorganiser l'affichage de mes photos.

    Si vous avez une soluce intéressante je suis preneur !

    En tout cas, merci de m'aider !
    @+++

  6. #6
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Si tu mets tous les input dans le même forme, ma solution est viable en l'état.
    T'as juste à remplacer le $i par ton $id, et remplacer le echo dans la reception par un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = 'update photo set num = '.intval($val).' where id = '.$res[1].'limit 1';
    Et je confirme, ça marchera même si les numéro ne se suivent pas.

Discussions similaires

  1. [Tableaux] Problème pour modifier des données
    Par Oli_Ifre dans le forum Langage
    Réponses: 8
    Dernier message: 11/04/2007, 16h33
  2. Réponses: 6
    Dernier message: 07/09/2006, 11h59
  3. Modifier des données dans une popup
    Par Sandara dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/06/2006, 14h00
  4. [MySQL] Modifier des données dans une base de donnée
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/01/2006, 10h56
  5. [VBA] Ajouter, modifier des données ou lecture seul
    Par Virgile59 dans le forum Access
    Réponses: 8
    Dernier message: 20/01/2006, 11h07

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