[TUTO Sortable] Pas de modification (php, NOT js)

Par remy76690, il y a 12 ans


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

remy76690, il y a 12 ans

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.

antho07, il y a 12 ans

Bonjour, on peut avoir le formulaire ?

remy76690, il y a 12 ans

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">)

remy76690, il y a 12 ans

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>