Si j'insère par exemple :
salut + ça va ?
Le résultat sera en base de donnée : salut ça va ?
Il y aura un espace entre les 2 mots.
Si maintenant j'insère que le +, le formulaire ne s'envois pas.
Je précise que j'ai ajouté 2 fonctions à ma variable et que à l'affichage j'utilise la fonction nl2br($ :
$statut_text = trim(html_entity_decode($_POST['statut_text']));
if(isset($statut_text) && !empty($statut_text)){
if(($statut_acces == 'amis') || ($statut_acces == 'moi') || ($statut_acces == 'public')){
$resultat = Bdd::connect() -> prepare(INSERT.USERSZ_STATUT.STATUTINSERT);
$resultat -> execute(array('user_id'=>$user_id,'statut_text'=>trim(html_entity_decode($statut_text)),'statut_acces'=>$statut_acces,'statut_photo'=>$statut_photo,'statut_etat'=>$statut_etat));
...
// Affichage de la nouvelle actu
...
}
}
Voici la connexion à la base de donnée qui indique que le charset est UTF8 :
class Bdd {
private static $connexion = NULL;
public static function connect(){
if(!self::$connexion){
self::$connexion = new PDO(DNS, USER, PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
self::$connexion -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$connexion;
}
}
Et le submit en ajax :
[javascript]
$('#statut').submit(function(){
var statut_text = $(this).find('textarea[name=statut_text]').val();
var statut_acces = $(this).find('input[name=statut_acces]').val();
var statut_photo = $(this).find('input[name=statut_photo]').val();
var statut_etat = $(this).find('input[name=statut_etat]').val();
var dataString = 'statut_text='+statut_text+'&statut_acces='+statut_acces+'&statut_photo='+statut_photo+'&statut_etat='+statut_etat;
$('#loadStatut').show();
setTimeout(function(){
$.ajax({
type: 'POST',
url: '../users/ajax/updatestatus.php',
data: dataString,
success: function(data){
$('textarea[name=statut_text]').attr('value','').css({'height':'40px'});
$(data).insertAfter('#newsPost').hide().fadeIn();
$('#loadStatut').hide();
}
});
},800);
return false;
});
[/javascript]