input name='identique[]'
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

input name='identique[]'



  1. #1
    invite4e680c26

    Lightbulb input name='identique[]'


    ------

    Bonjour,
    Je bloque sur un sujet le name identique.

    Je m'explique j'ai créer une boucle qui récupéré des item avec leur prix de la base de donner.

    Je souhaite pourvoir modifier le prix d'un item, quand j'utilise la requête sa modifie que le dernier item.

    Je c'est que sa vient du name car il est identique partout.

    Pour résoudre ça j'ai vu qu'il fallait rajouter des crochet "name='monNon[]'".

    Mais la je bloque je vois pas comment après je renvoie en base de donner, car il renvoi array vu que [] -> c'est un tableau.

    Es ce que je doit utiliser du javascript pour différencier les name ou en PHP c'est possible de le faire ?

    Actuellement en PHP, je c'est modifier seulement quand il y a un name unique.


    Voici mon code :


    Html

    Code HTML:
    <table class="tableau">
                  <thead>
                  <tr>
                    <th colspan="5">
                      <input class="form-control" id="search" type="text"
                             placeholder="Tape quelques lettres ou chiffres pour trouver ton bonheur !!!"/>
                    </th>
                  </tr>
                  <tr>
                    <th>Numéro</th>
                    <th>Non item</th>
                    <th>Prix</th>
                    <th>Modifier</th>
                  </tr>
                  </thead>
                  <tbody>
                  {% for vente in ventes %}
                    <tr>
                      <td>
                        {{ vente.id }}
                      </td>{#Name et photo#}
    
                      <td>
                        {{ vente.name|raw }}<br>
                        <img src="{{ vente.photo }}" height="50px" width="50px">
                      </td>{#Name et photo#}
    
                      <td>
                        <input type="text" name="prix[]" value="{{ vente.prix }}">
                      </td>{#Prix#}
    
                      <td>
                        <button type="submit">Modifier</button>
                      </td>{#modifier#}
    
                    </tr>
                  {% endfor %}
                  </tbody>
                </table>
    Recuperation base de donnee

    Code PHP:
    private function creationItem($post){
            
    $pseudos $this->db->query("SELECT * FROM guilde")->fetchAll();
            
    $ventes $this->db->query("SELECT * FROM item")->fetchAll();
        return[
    'pseudos' => $pseudos'ventes' => $ventes];
      } 

    Modification base de donnee

    Code PHP:
    foreach ($post as $key => $item){
          switch (
    $key){
            case 
    'prix':
              if(!isset(
    $post['prix']) and empty($post['prix'])){
                
    Session::getInstance()->SetFlash('erreur'"Le prix n'a pas était renseigner");
                
    $erreur =true;
              }
            break;
          }
        }
        if(!
    $erreur){
          
    $tableau = array(
            
    ':prix' => $post['prix']
          );
          
    $items $this->db->query('UPDATE item set prix=:prix WHERE id=:id '$tableau );
          if (
    $items) {
            
    Session::getInstance()->setFlash('success''La modification a bien était effectuée');
          }
          else {
            
    Session::getInstance()->setFlash('erreur''La modification à échoué');
          }
        } 
    Merci pour votre aide

    -----

  2. #2
    umfred

    Re : input name='identique[]'

    Bonjour,

    Pour commencer, ta requête update se fait en dehors de la boucle foreach (compte les accolades ouvrantes et fermantes), donc tu ne modifies qu'un seul élément.

  3. #3
    uneautreterre

    Re : input name='identique[]'

    Actuellement en PHP, je c'est modifier seulement quand il y a un name unique.
    Bonjour. As-tu voulu dire « je sais modifier » ?

    Les champs multiple sont reçus comme des tableaux. Fais var_dump($_POST) pour le visualiser

    Si c'est le cas, un name multiple se traite facilement dans une boucle foreach()

    Mettons que tes données POST ressemblent à ceci
    $idarticle [ 115, 211, 4]
    $prix [11.50, 5.4, 12.20]

    Comment arriver à

    UPADTE articles SET prix=11.50 WHERE idarticle = 115;
    UPADTE articles SET prix=11.50 WHERE idarticle = 115;
    UPADTE articles SET prix=11.50 WHERE idarticle = 115;

    Il te suffit de faire ceci :

    $idarticles = $_POST['idarticle'];
    $prix = $_POST['prix'];
    foreach($idarticles as $cle => $idarticle)
    $sql .= "UPADTE articles SET prix='$prix[$cle]' WHERE idarticle = '$idarticle';";


    Bien sûr il fait faire des vérifications et tutti quanti.
    Dernière modification par uneautreterre ; 12/11/2019 à 17h26.

Discussions similaires

  1. Molécule conformère ou identique ?
    Par invite34efcbb6 dans le forum Chimie
    Réponses: 4
    Dernier message: 16/08/2017, 17h16
  2. ADN identique
    Par invitec2cb3ab3 dans le forum Biologie
    Réponses: 13
    Dernier message: 17/01/2011, 16h35
  3. 2,5 V sur l'input d'un PIC ???
    Par invite86ffa844 dans le forum Électronique
    Réponses: 23
    Dernier message: 08/09/2007, 20h05
  4. peut-on cloner a l identique
    Par invite2dbf2163 dans le forum TPE / TIPE et autres travaux
    Réponses: 3
    Dernier message: 10/12/2003, 18h02