[AJAX] Formulaire et ajax
Bonjour,
J'aimerai avoir un retour ajax de la réussite ou non de l'insertion en bdd.
Le formulaire
Code:
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:
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:
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;
});
}); |