Bonjour,

J'aimerai avoir un retour ajax de la réussite ou non de l'insertion en bdd.

Le formulaire
Code html : 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
<FORM id="new_mess_form" enctype="multipart/form-data" action="test1.php" method="POST">
    <INPUT id="id_expediteur" name="id_expediteur" type="hidden"  value="<?php echo $_SESSION['auth_id'] ?>" />
    <SELECT name="id_destinataire" >
        <OPTION value="0">Destinataire</OPTION>
            <?php
            $req = Cnx::connectCnx()->prepare('SELECT equipe.id, equipe.nom, equipe.prenom FROM equipe  WHERE id_societe=:id AND id<>:id AND activate=1 ORDER BY nom');
            $req->execute(array('id' => $Auth->user('id')));
                while($user=$req->fetch(PDO::FETCH_OBJ)) {
                    echo '<OPTION name="destinataire" value="'.$user->id.'">'.ucfirst($user->nom). ' ' .ucfirst($user->prenom).'</OPTION>';
                }
            ?>
    </SELECT>
    <br />
    <INPUT id="titre_mess" name="titre_mess" type="text"  value="<?php if(!empty($_POST['titre_mess'])) : echo htmlspecialchars($_POST['titre_mess'], ENT_QUOTES); endif; ?>" placeholder="Titre *" maxlength="35"><br />
    <TEXTAREA  name="message" value="<?php if(!empty($_POST['message'])) : echo htmlspecialchars($_POST['message'], ENT_QUOTES); endif; ?>" placeholder="Votre message"></TEXTAREA><br />
    <INPUT type="hidden" name="MAX_FILE_SIZE" value="2097152">    
    <INPUT type="file" name="piece_jointe"><br>
    <INPUT type="submit" name="new_mess" value="Envoyer"/>   
</FORM>
Le php
Code php : 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
 //verification des champs
    $erreur = verifMess();
 
    // pas d'erreur
    if(empty($erreur)){
 
        try {
             $resultat = Cnx::connectCnx()->prepare('INSERT INTO messagerie (id_expediteur, id_destinataire, titre_mess, message, piece_jointe, date_mess) VALUES(:id_expediteur, :id_destinataire, :titre_mess, :message, :piece_jointe, :date_mess)');
            $resultat->bindValue(':id_expediteur', $_POST['id_expediteur']);
            $resultat->bindValue(':id_destinataire', $_POST['id_destinataire']);
            $resultat->bindParam(':titre_mess', $_POST['titre_mess']);
            $resultat->bindValue(':message', $message);
            $resultat->bindParam(':piece_jointe', $fichier);
            $resultat->bindValue(':date_mess', date('Y-m-d H:i:s'),PDO::PARAM_STR);
            $resultat->execute();
            echo'ok';
        }
            catch (PDOException $e) {
                echo '<div class="error">Erreur SQL : ' . $e->getMessage().'</div>';
            }
    } else {
        echo '<div class="new_mess_erreur">';
        foreach ($erreur as $e) {
            echo '<p>'.$e, '</p>';
        }
        echo '</div>';
    }
}
Le JS
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
$(function(){
    $('form#new_mess_form').submit( function(e) {
         e.preventDefault();
         var data = $(this).serialize();
        $.ajax({
            type: $(this).attr('method'),
            url: $(this).attr('action'),
            data: data,
            success: function(){
                if(data=!'ok'){
                    alert('non')
                }
                else{
                    alert('ok')
                }
            }
         });
        return false;
    });
});