[AJAX] Erreur 500 Ajax - Post
J'envoie des données de formulaire par ajax, mais on m'affiche ce type d'erreur : 500 Internal Server Error. Pourtant, je ne vois pas où ça cloche. Cependant, lorsque j'envoie seulement UNE donnée, ça fonctionne. Je ne vois pas où est le problème dans ma concaténation de la variable donnée...
Je dois envoyer le tout en POST pour ne pas dépassé la limite de caractère en GET, puisque qu'il peut s'y enregistrer des articles très très longs.
Page news.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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| <?php require_once('../Connections/connexion.php'); ?>
<?php
session_start();
if (!isset($_SESSION['user'])) {
header ('Location: index.html');
}
?>
<?php require_once('../include/fonctions_communes.inc.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<? require_once('includes/head.inc.php'); ?>
<title>Nouvelles</title>
<script language="javascript" type="text/javascript">
$( document ).ready(function() {
$(".submitNouvelle").click(function(){
for (instance in CKEDITOR.instances) {
CKEDITOR.instances[instance].updateElement();
}
var titre = $("#titre").val();
var tagline = $("#tagline").val();
var datepicker = $("#datepicker").val();
var nouvelle = $("#nouvelle").val();
var auteur = $("#auteur").val();
var categorie = $("#categorie").val();
var sujet = $("#sujet").val();
var donnee = "titre="+titre + "&tagline=" + tagline + "&datepicker=" + datepicker + "&nouvelle=" + nouvelle + "&auteur=" + auteur + "&categorie=" + categorie + "&sujet=" + sujet;
jQuery.ajax({
type:"POST",
url:"ajax/ajouterNouvelle.php",
data: donnee,
dataType:"html",
success: function(contenu){
$("#messageEtat").append(contenu);
}
});
});
});
</script>
</head>
<body>
<div class="contenu">
<? require_once('includes/menu.inc.php'); ?>
<div class="page">
<div id="messageEtat"></div>
<?
//Ajouter ou supprimer une nouvelle
if(isset($_POST['supprimer'])){
supprimerNouvelle();
}
//Supprimer la nouvelle
function supprimerNouvelle (){
$id = $_POST['supprimer'];
$strDelete = "DELETE FROM beta_news WHERE id= $id";
mysql_query($strDelete);
header('Location: news.php');
echo "<p class='avertissement-positif'>Votre nouvelle est supprimée.</p>";
}
?>
<h2>Les nouvelles</h2>
<div id="nouvelles">
<h3>Ajouter une nouvelle</h3>
<div>
<form method="post" action="<? $_SERVER['PHP_SELF']; ?>" name="ajouterNouvelle" id="ajouterNouvelle">
<p>Complétez bien tous les champs. </p>
<p>
<label for="titre">Titre de la nouvelle</label>
<input type="text" maxlength="19" name="titre" id="titre" value="<? if (isset($_POST['titre'])){ echo $_POST['titre'];} ?>"/>
</p>
<p>
<label for="tagline">Tagline</label>
<input type="text" maxlength="41" name="tagline" id="tagline" value="<? if (isset($_POST['tagline'])){ echo $_POST['tagline'];} ?>" />
</p>
<p>
<label for="datepicker">Date</label>
<input type="text" id="datepicker" name="datepicker" value="<? if (isset($_POST['datepicker'])){ echo $_POST['datepicker'];} ?>"/>
</p>
<p class="ckeditor">
Contenu de la nouvelle : </p>
<p><textarea id="nouvelle" name="nouvelle"><? if (isset($_POST['nouvelle'])){ echo $_POST['nouvelle'];} ?></textarea></p>
<p>
<label for="auteur">Auteur : </label>
<input type="text" maxlength="25" name="auteur" id="auteur" value="<? if (isset($_POST['auteur'])){ echo $_POST['auteur'];} ?>" />
</p>
<p><label for="categorie" >Catégorie :</label>
<select id="categorie" name="categorie">
<option value="article">Article</option>
<option value="rubrique">Rubrique</option>
<option value="general">Général</option>
</select>
</p>
<p><label for="sujet" >Sujet de la nouvelle :</label>
<select id="sujet" name="sujet">
<?
//Liste le sujet de la nouvelle
$strSujet = "";
$strRequeteSujet = "SELECT * FROM beta_subject";
$resultatSujet = mysql_query($strRequeteSujet) or die("La requête sujet a échoué");
if(mysql_num_rows($resultatSujet)==0){
echo "Aucun sujet n'a été trouvé";
exit;
}
while($a_sujet=mysql_fetch_array($resultatSujet,MYSQL_ASSOC)){
$strSujet.="<option value={$a_sujet['id']}> {$a_sujet['title']} </option>";
}
echo $strSujet;
mysql_free_result($resultatSujet);
?>
</select>
</p>
<p>
<input type="button" class="submitNouvelle" value="Ajouter" id="ajouter" name="ajouter" />
</p>
</form>
</div>
</div>
</div>
</body>
</html> |
Voici la page appelée par ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| //Ajouter la nouvelle
if(!empty($_POST)){
$titre = $_POST['titre'];
$tagline = $_POST['tagline'];
$date = $_POST['datepicker'];
$nouvelle = $_POST['nouvelle'];
$auteur = $_POST['auteur'];
$slug = Slug($titre);
$categorie = $_POST['categorie'];
$sujet = $_POST['sujet'];
$strRequeteAjouter = "INSERT INTO beta_news (title,summary,published_date,text,slug,cat,auteur,subject_id) VALUES ('{$titre}','{$tagline}','{$date}','{$nouvelle}','{$slug}','{$categorie}','{$auteur}',$sujet) ";
if(mysql_query($strRequeteAjouter)){;
echo "<p class='avertissement-positif'>Votre nouvelle est ajoutée</p>";
}else{
echo "<p class='avertissement-negatif'>Il y a eu un problème lors de votre enregistrement.</p>";
}
}else{
echo "<p class='avertissement-negatif'>Votre nouvelle n'a pas été ajoutée. Veuillez compléter le formulaire au complet.</p>";
} |
Merci à celui où celle qui peut résoudre mon problème.