Bonjour à tous,
J'ai un souci avec mon code lors d'envoi d'un formulaire (traitement Ajax et PHP).
Je ne comprend pas d’où vient le problème car j'ai fait le même test ça a marché au début et subitement un problème survient après.
En effet, j'ai un formulaire avec 2 champs que je valide en ajax et php. Ma requête échoue lors de l'envoie (Statut = Aborted) sans même appeler le fichier php.
J'utilise firefox comme navigateur, il ne m'affiche aucune erreur. Sur chrome c'est pareil. Par contre sur internet explorer, j'ai ce message : (SCRIPT7002: XMLHttpRequest: Erreur réseau 0x2ef3, Impossible d'effectuer l'opération à cause de l'erreur suivante 00002ef3.).
Je ne comprend pas l'origine de ce problème.
Toute aide est la bienvenue. Merci par avance !
Ci-dessous le code du formulaire et traitements :
J'ai un souci avec mon code lors d'envoi d'un formulaire (traitement Ajax et PHP).
Je ne comprend pas d’où vient le problème car j'ai fait le même test ça a marché au début et subitement un problème survient après.
En effet, j'ai un formulaire avec 2 champs que je valide en ajax et php. Ma requête échoue lors de l'envoie (Statut = Aborted) sans même appeler le fichier php.
J'utilise firefox comme navigateur, il ne m'affiche aucune erreur. Sur chrome c'est pareil. Par contre sur internet explorer, j'ai ce message : (SCRIPT7002: XMLHttpRequest: Erreur réseau 0x2ef3, Impossible d'effectuer l'opération à cause de l'erreur suivante 00002ef3.).
Je ne comprend pas l'origine de ce problème.
Toute aide est la bienvenue. Merci par avance !
Ci-dessous le code du formulaire et traitements :
// Formulaire
<form method="post" action="action.php" id="myform">
<input type="text" name="titre" id="titre">
<textarea name="description" id="description" rows="5" cols="50"></textarea>
<input type="submit" name="valider_q" value="Valider" class="btn_valider">
<input type="hidden" name="id_valid">
</form>
// jQuery - Ajax
$(document).ready(function() {
$('#myform').on('submit', function(e) {
e.preventDefault();
var $this = $(this); // l'objet jquery du formulaire
// Je récupère les valeurs
var titre = $('#titre').val();
var description = $('#description').val();
// Je vérifie une première fois pour ne pas lancer la requête HTTP
// si je sais que mon PHP renverra une erreur
if(titre === '' || description === '') {
document.write('Les champs doivent être remplis.');
} else {
$.ajax({
url: $this.attr('action'), // Le nom du fichier indiqué dans le formulaire
type: $this.attr('method'), // La méthode indiquée dans le formulaire (get ou post)
data: $this.serialize(),
beforeSend: function() { // traitements JS à faire AVANT l'envoi
$this.after('<img src="inc/img/loader.gif" alt="loading" id="load1">');
// ajout d'un loader pour signifier l'action
},
success: function(data){
$('#status').html(data).delay(10000).hide(200);
}
});
}
});
// PHP
require_once('db.php'); // connexion à la BD
if (isset($_POST['id_valid'])) { // si le formulaire est valide
if (isset($_POST['titre']) && isset($_POST['description'])) { // champs saisis
$titre = $_POST['titre'])));
$description = $_POST['description'];
$q = array('titre'=>$titre, 'description'=>$description);
$sql = "INSERT INTO question (question_titre, question_description, question_date)
VALUES (:titre, :description, now())";
$req = $db->prepare($sql);
$req->execute($q) or die(print_r($db->errorInfo()));
$data = $req;
echo '<p class="success">Message envoyé !</p>';
} else {
echo 'Champs non valides';
}
}