Un formulaire php - 2 actions et 1 submit
Fermé
Aaymeric
Messages postés
78
Date d'inscription
jeudi 29 septembre 2011
Statut
Membre
Dernière intervention
7 octobre 2018
-
23 févr. 2015 à 16:45
jordane45 Messages postés 38364 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 - 23 févr. 2015 à 22:42
jordane45 Messages postés 38364 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 - 23 févr. 2015 à 22:42
A voir également:
- Php form action
- Action - Guide
- Tubidy film d'action telecharger - Télécharger - TV & Vidéo
- Action fans - Accueil - Guide arnaque
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Lidl action - Guide
3 réponses
jordane45
Messages postés
38364
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 décembre 2024
4 720
23 févr. 2015 à 17:37
23 févr. 2015 à 17:37
Bonjour,
Sachant que de toutes façons tu ne peux pas envoyer (en POST) vers plusieurs fichiers... il faudra réunir les deux fichiers (verifmessage.php et post.php) en un seul.
Il faudrait aussi que tu nous indiques à quoi servent ces deux fichiers... il existe peut être un autre moyen de le faire (en utilisant de l' AJAX via javascript par exemple)....
Mais....Sans voir ton code.. impossible de t'en dire plus.
Sachant que de toutes façons tu ne peux pas envoyer (en POST) vers plusieurs fichiers... il faudra réunir les deux fichiers (verifmessage.php et post.php) en un seul.
Il faudrait aussi que tu nous indiques à quoi servent ces deux fichiers... il existe peut être un autre moyen de le faire (en utilisant de l' AJAX via javascript par exemple)....
Mais....Sans voir ton code.. impossible de t'en dire plus.
Aaymeric
Messages postés
78
Date d'inscription
jeudi 29 septembre 2011
Statut
Membre
Dernière intervention
7 octobre 2018
23 févr. 2015 à 22:06
23 févr. 2015 à 22:06
Post.php vérifie si le membre existe dans la base de donné et verifmessage est l'action du formulaire pour traiter les valeurs entrée par l'utilisateur et les rajoutent dans la bdd. Associé à ce formualaire il y a un fichier jquery (message.js) qui vérifie si les entrées sont complétées. Je vous mes les codes de verifmessage.php et de message.js ensuite de post.php et de func.js (qui check si le membre existe ou non dans la bdd)
verifmessage.php
message.js
post.php
func.js
Et le formulaire de base est un simple formulaire. Je vais quand meme le mettre au cas ou avec les lignes principales:
verifmessage.php
<?php include '../connection.php'; session_start(); $titre=htmlspecialchars($_POST['titre']); $message=nl2br(htmlspecialchars($_POST['message'])); $destinataire=htmlspecialchars($_POST['destinataire']); setlocale (LC_ALL, 'fr_FR.utf-8','fra'); $dateinsc = strftime('%A %d %B %Y à %H:%M'); $id = $_SESSION['id']; $reponse = $bdd->prepare('INSERT INTO message (emetteur, destinataire, titre, message, timestamp) VALUES (:emetteur, :destinataire, :titre, :message, :timestamp)'); $reponse->execute(array( ':emetteur' => $id, ':destinataire' => $destinataire, ':titre' => $titre, ':message' => $message, ':timestamp' => $dateinsc)); $reponse->closeCursor(); header ('refresh: 0,message.php'); ?>
message.js
$(document).ready(function(){ var result = true; $('form').submit(function(){ if($('#titre').val()==""){ $('#titre').css({border:'1px solid red', boxShadow:'0px 0px 10px red'}); $('#titre').next('.error').fadeIn('low').text('Champ obligatoire.'); result = false; } if($('#mess').val()==""){ $('#mess').css({border:'1px solid red', boxShadow:'0px 0px 10px red'}); $('#mess').next('.error').fadeIn('low').text('Champ obligatoire.'); result = false; } return result; }); $('#titre').keyup(function(){ if($('#titre').val().length<1){ $('#titre').css({border:'1px solid red', boxShadow:'0px 0px 10px red'}); $('#titre').next('.error').fadeIn('low').text('Le titre doit être complété !'); result = false; } else { $('#titre').css({border:'1px solid green', boxShadow:'0px 0px 10px green'}); $('#titre').next('.error').fadeOut(); result = true; } return result; }); $('#mess').keyup(function(){ if($('#mess').val().length<1){ $('#mess').css({border:'1px solid red', boxShadow:'0px 0px 10px red'}); $('#mess').next('.error').fadeIn('low').text('Votre message est vide !'); result = false; } else { $('#mess').css({border:'1px solid green', boxShadow:'0px 0px 10px green'}); $('#mess').next('.error').fadeOut(); result = true; } return result; }); $('#destinataire').keyup(function(){ var destinataire = $('#destinataire').val(); if(destinataire != ""){ $.post('verifmessage.php',{destinataire:destinataire},function(data){ $('.feedback').text('data'); }); } else { $('.feedback').text('Veuillez inscrire un membre'); } }); });
post.php
<?php include '../connection.php'; //Partie pour le jquery $username = $_POST['username']; $query = $bdd->prepare('SELECT COUNT(*) as nb FROM membres WHERE pseudo = ?'); if ($query == false) { echo 'Erreur prepare'; print_r($bdd->errorInfo()); die(); } $res = $query->execute(array($username)); if ($res == false) { echo 'Erreur execute'; print_r($query->errorInfo()); die(); } $row = $query->fetch(); if ($row['nb'] > 0) { echo 'Ce user est déjà utilisé'; } else { echo 'Ce user est dispo'; } //Fin ?>
func.js
$(document).ready(function(){ $('#username').keyup(function(){ var username = $('#username').val(); if(username != ""){ $.post('post.php',{username:username},function(data){ $('.feedback').text(data); }); } else { $('.feedback').text('Veuillez inscrire un membre'); } }); });
Et le formulaire de base est un simple formulaire. Je vais quand meme le mettre au cas ou avec les lignes principales:
<form id="contact" action="verifmessage.php" method="post" name="formulaire"> <table> <tr> <td><label for="destinataire">Destinataire</label>: </td> <?php if(isset($_GET['emetteur'])){ $emetteur = htmlentities($_GET['emetteur']); echo '<td><input type="text" name="destinataire" id="username" value="'.$emetteur.'"/><span class="feedback"></span></td>'; } else { echo '<td><input type="text" name="destinataire" id="username" value="" /><span class="error"></span></td>'; } ?> </tr> <tr> <td><label for="titre">Titre:</label></td> <td><input type="text" id="titre" name="titre" size="60px"></input><span class="error"></span><td> <tr> <td><label for="message">Message:</label></td> <td><textarea id="mess" name="message" rows="6" cols="60"></textarea><span class="error"></span><td> </tr> </table> <input type="submit" value="Envoyer" id="submit"/> </form>
jordane45
Messages postés
38364
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 décembre 2024
4 720
Modifié par jordane45 le 23/02/2015 à 22:42
Modifié par jordane45 le 23/02/2015 à 22:42
Je ne comprend pas ton souci....
Le fichier Post.php ... est utilisé via Javascript en AJAX dans ton fichier func.js
Tu n'as donc aucunement besoin de l'appeller au SUBMIT de ta form....
Par contre... si ton souci est qu'il ne fonctionne pas .... c'est peut être par ce que tu ne l'as pas importé dans la page contenant le formulaire......
A la limite... juste pour quelques lignes de code js.. tu peux éviter de les mettre dans un fichier à part et placer le directement dans ta page....
NB: Tu as bien sur inclus Jquery et ton script message.js dans ta page.
Nb² : Si ça ne fonctionne toujours pas.... commence par installer le plugin FireBug ( pour FireFox).
Lances le .... affiche ta page .... remplie les données ... et regarde dans la console ce que ça t'affiche....
Si tu ne sais pas comment t'en servir .. Apprend le contenu de ce lien :
http://openclassrooms.com/courses/firebug-une-merveille-de-plus-pour-firefox
Et éventuellement celle là également :
https://eric-pommereau.developpez.com/tutoriels/outil-web/firebug/
Cordialement,
Jordane
Le fichier Post.php ... est utilisé via Javascript en AJAX dans ton fichier func.js
$(document).ready(function(){ $('#username').keyup(function(){ var username = $('#username').val(); if(username != ""){ $.post('post.php',{username:username},function(data){ $('.feedback').text(data); }); } else { $('.feedback').text('Veuillez inscrire un membre'); } }); });
Tu n'as donc aucunement besoin de l'appeller au SUBMIT de ta form....
Par contre... si ton souci est qu'il ne fonctionne pas .... c'est peut être par ce que tu ne l'as pas importé dans la page contenant le formulaire......
A la limite... juste pour quelques lignes de code js.. tu peux éviter de les mettre dans un fichier à part et placer le directement dans ta page....
<form id="contact" action="verifmessage.php" method="post" name="formulaire"> <table> <tr> <td><label for="destinataire">Destinataire</label>: </td> <td> <?php $emetteur = isset($_GET['emetteur'])?htmlentities($_GET['emetteur']):''; echo '<input type="text" name="destinataire" id="username" value="'.$emetteur.'"/>'; $classSpan = ($emetteur)?"feedback":"error"; echo '<span class="'.$classSpan.'"></span>'; ?> <script type="text/javascript"> $(document).ready(function(){ $('#username').keyup(function(){ var username = $('#username').val(); if(username != ""){ $.post('post.php',{username:username},function(data){ $('.feedback').text(data); }); } else { $('.feedback').text('Veuillez inscrire un membre'); } }); }); </script> </td> </tr> <tr> <td><label for="titre">Titre:</label></td> <td><input type="text" id="titre" name="titre" size="60px"> <span class="error"></span> </td> <tr> <td><label for="message">Message:</label></td> <td><textarea id="mess" name="message" rows="6" cols="60"></textarea> <span class="error"></span><td> </tr> </table> <input type="submit" value="Envoyer" id="submit"/> </form>
NB: Tu as bien sur inclus Jquery et ton script message.js dans ta page.
Nb² : Si ça ne fonctionne toujours pas.... commence par installer le plugin FireBug ( pour FireFox).
Lances le .... affiche ta page .... remplie les données ... et regarde dans la console ce que ça t'affiche....
Si tu ne sais pas comment t'en servir .. Apprend le contenu de ce lien :
http://openclassrooms.com/courses/firebug-une-merveille-de-plus-pour-firefox
Et éventuellement celle là également :
https://eric-pommereau.developpez.com/tutoriels/outil-web/firebug/
Cordialement,
Jordane