Bonjour,
Voila, j'ai regarder la vidéo sur sortable 2 fois, et j'ai essayer de le refaire.
Actuellement, j'ai pas fait pour le JS, et sa fonctionne déjà pas.
Tout s'affiche, et si je clique sur modifier (submit),
il envois des données, mais je pense que sa pose problème.
Le problème, n'est pas coter SQL, car j'ai vérifier et tout est normal.
voici mon code :

public function urlExtAdmin() {
        $i=0;
        $query = $this->db->prepare('SELECT * FROM template_maniac058_urlexte ORDER BY ordre ASC');
        $query->execute();
        while ($data = $query->fetch()) { 
            $i++;
        ?>
            <li style="word-wrap: break-word;">
                <a href="" style="margin-left: -15px;position: relative;margin-right: 20px"><img src="./images/close.png" width="31" style="position:absolute;top:-15px;" /></a>
                <input type="hidden" name="URLExt'<?php echo $i; ?>']'id']" value="<?php echo $data'id']; ?>"/>
                <br/><input type="text" name="URLExt'<?php echo $i; ?>']'name']" value="<?php echo $data'Name']; ?>" placeholder="Nom" class="inputURLExt" />
                <input type="text" name="URLExt'<?php echo $i; ?>']'url']" value="<?php echo $data'url']; ?>" class="inputURLExt" placeholder="URL"/>
                <input type="hidden" name="URLExt'<?php echo $i; ?>']'ordre']" value="<?php echo $data'ordre']; ?>"/>
                <!-- 
                <?php echo htmlspecialchars(stripcslashes($data'Name'])); ?> -->
            </li>
        <?php
        }
        $query->closeCursor();
    }

ici tout vas bien, il s'affiche sur ma page, mais le problème et a l'envois :
index.php

<?php $urlExt->urlExt(); ?>
<?php
if (isset($_GET'action'])) {
    if (!empty($_POST)) {
        $URLExt = $_POST'URLExt'];
        foreach ($URLExt as $c) {
            extract($c);
            $urlExt->seturlExtAdminModif($name, $url, $ordre, $id);
            # code...
        }
    }
}
?>

et le code qui traite l'envois :

public function seturlExtAdminModif($name, $url, $ordre, $id) {
        $query = $this->db->prepare('UPDATE template_maniac058_urlexte SET Name = :name AND url = :url AND ordre = :ordre WHERE id = :id');
        $query->bindValue(':id', $id, PDO::PARAM_STR);
        $query->bindValue(':name', $name, PDO::PARAM_STR);
        $query->bindValue(':url', $url, PDO::PARAM_STR);
        $query->bindValue(':ordre', $ordre, PDO::PARAM_STR);
        $query->execute();
        $query->CloseCursor();
        // $this->session_message->setFlash('OK', 'success');
        // header('./');
        // exit;
    }

Voilà, j'utilise un peut de POO, alors, désoler pour les personnes qui comprenne pas.
Merci de m'aider.

5 réponses


J'ai trouver qu'elle que info, enfaîte, il trouve pas les $_POST
Exemple, si j'essaye de faire un print_r($_POST'ordre']);
Il me dit que sa existe pas.
Le problème, est ici.

Bonjour, on peut avoir le formulaire ?

Le formulaire et simple :

public function urlExtAdmin() {
        $i=0;
        $query = $this->db->prepare('SELECT * FROM template_maniac058_urlexte ORDER BY ordre ASC');
        $query->execute();
        while ($data = $query->fetch()) { 
            $i++;
        ?>
            <li style="word-wrap: break-word;">
                <a href="" style="margin-left: -15px;position: relative;margin-right: 20px"><img src="./images/close.png" width="31" style="position:absolute;top:-15px;" /></a>
                <input type="hidden" name="URLExt'<?php echo $i; ?>']'id']" value="<?php echo $data'id']; ?>"/>
                <br/><input type="text" name="URLExt'<?php echo $i; ?>']'name']" value="<?php echo $data'Name']; ?>" placeholder="Nom" class="inputURLExt" />
                <input type="text" name="URLExt'<?php echo $i; ?>']'url']" value="<?php echo $data'url']; ?>" class="inputURLExt" placeholder="URL"/>
                <input type="hidden" name="URLExt'<?php echo $i; ?>']'ordre']" value="<?php echo $data'ordre']; ?>"/>
                <!-- 
                <?php echo htmlspecialchars(stripcslashes($data'Name'])); ?> -->
            </li>
        <?php
        }
        $query->closeCursor();
    }

Et ensuite, c'est simple,
C'est une balise (<form methode="POST" action="index.php?action=modif-url">)

Voici a peut pré le formulaire sans classe :

<form method="POST" action="index.php?action=URL">
                                        <ul id="sortable">
                                            $i=0;
        $query = $this->db->prepare('SELECT * FROM template_maniac058_urlexte ORDER BY ordre ASC');
        $query->execute();
        while ($data = $query->fetch()) { 
            $i++;
        ?>
            <li style="word-wrap: break-word;">
                <a href="" style="margin-left: -15px;position: relative;margin-right: 20px"><img src="./images/close.png" width="31" style="position:absolute;top:-15px;" /></a>
                <input type="hidden" name="URLExt'<?php echo $i; ?>']'id']" value="<?php echo $data'id']; ?>"/>
                <br/><input type="text" name="URLExt'<?php echo $i; ?>']'name']" value="<?php echo $data'Name']; ?>" placeholder="Nom" class="inputURLExt" />
                <input type="text" name="URLExt'<?php echo $i; ?>']'url']" value="<?php echo $data'url']; ?>" class="inputURLExt" placeholder="URL"/>
                <input type="hidden" name="URLExt'<?php echo $i; ?>']'ordre']" value="<?php echo $data'ordre']; ?>"/>
                <!-- 
                <?php echo htmlspecialchars(stripcslashes($data'Name'])); ?> -->
            </li>
        <?php
        }
        $query->closeCursor();
                                        </ul>
                                    <input type="submit" value="Mettre a jour" class="btn btn-success" style="width:100%;margin-top:15px;"/>
                                    </form>