[RESOLU] Supprimer les retours à la ligne en trop

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Supprimer les retours à la ligne en trop

Re: [RESOLU] Supprimer les retours à la ligne en trop

par nico44530 » 12 mars 2014, 00:52

Je viens de trouver pour ceux que ça intéresse :
// CLASS : Statut
class Statut {
	public static function sendStatut($user_id,$statut_text,$statut_acces,$statut_photo,$statut_etat){
		$statut_text = trim($_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($statut_text),'statut_acces' => $statut_acces,'statut_photo' => $statut_photo,'statut_etat' => $statut_etat));
			$avatar50 = $_SERVER['DOCUMENT_ROOT'].'/users/upload/avatars/'.Statut::newsPost('id').'-mini.jpg';
			$avatarDefault = Statut::newsPost('sexe') == 'homme' ? 'users/upload/avatars/homme.jpg' : 'users/upload/avatars/femme.jpg';
			echo '<li class="clearfix">';
			echo '<div class="statutAvatar arrow">';
			echo '<a href="'.Statut::newsPost('pseudo').'">';
			if(file_exists($avatar50)){ echo '<img src="users/upload/avatars/'.Statut::newsPost('id').'-mini.jpg" height="50" width="50" alt="" />'; } else { echo '<img src="'.$avatarDefault.'" height="50" width="50" alt="" />'; }
			echo '</a>';
			echo '</div>';
			echo '<div class="statutContent">';
			echo '<p>'.nl2br(Statut::newsPost('statut_text')).'</p>';
			echo '</div>';
			echo '</li>';
			} else {
				return false;
			}
		} else {
			return false;
		}
	}
...
...
}

Supprimer les retours à la ligne en trop

par nico44530 » 12 mars 2014, 00:31

Bonjour,

J'ai un textarea qui enregistre un message, et avec ajax je l'affiche en dessous du textarea.

Le problème c'est que si on fait des retours à la ligne sans écrire de texte, le formulaire s'envois et un bloc blanc apparaît sans texte.
J'aimerais que le formulaire ne s'envois pas, si il y a que des retours à la ligne ou des tabulations ou espace sans texte.

Et que si il y a du texte, les retours à la ligne, tabulations et espace en trop soient supprimés.

La fonction trim() ne fonctionne pas avec mon code :(

PS : sur ma connexion à la base de donnée, le charset utf8 est ajouté : self::$connexion -> exec('SET NAMES utf8');
// CLASS : Statut
class Statut {
	public static function sendStatut($user_id,$statut_text,$statut_acces,$statut_photo,$statut_etat){
		$statut_text = trim($statut_text);
		if(isset($_POST['statut_text']) && !empty($_POST['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' => $statut_text,'statut_acces' => $statut_acces,'statut_photo' => $statut_photo,'statut_etat' => $statut_etat));
			$avatar50 = $_SERVER['DOCUMENT_ROOT'].'/users/upload/avatars/'.Statut::newsPost('id').'-mini.jpg';
			$avatarDefault = Statut::newsPost('sexe') == 'homme' ? 'users/upload/avatars/homme.jpg' : 'users/upload/avatars/femme.jpg';
			echo '<li class="clearfix">';
			echo '<div class="statutAvatar arrow">';
			echo '<a href="'.Statut::newsPost('pseudo').'">';
			if(file_exists($avatar50)){ echo '<img src="users/upload/avatars/'.Statut::newsPost('id').'-mini.jpg" height="50" width="50" alt="" />'; } else { echo '<img src="'.$avatarDefault.'" height="50" width="50" alt="" />'; }
			echo '</a>';
			echo '</div>';
			echo '<div class="statutContent">';
			echo '<p>'.Statut::newsPost('statut_text').'</p>';
			echo '</div>';
			echo '</li>';
			} else {
				return false;
			}
		} else {
			return false;
		}
	}
	public static function displayStatut(){
		$resultat = Bdd::connect() -> prepare(SELECT.ALL.USERS_STATUT.' LEFT JOIN users ON users_statut.user_id = users.id ORDER BY statut_id DESC');
		$resultat -> execute();
		while($statut = $resultat -> fetch(PDO::FETCH_ASSOC)){
			$avatar50 = $_SERVER['DOCUMENT_ROOT'].'/users/upload/avatars/'.$statut['id'].'-mini.jpg';
			$avatarDefault = $statut['sexe'] == 'homme' ? 'users/upload/avatars/homme.jpg' : 'users/upload/avatars/femme.jpg';
			echo '<li class="clearfix">';
			echo '<div class="statutAvatar arrow">';
			echo '<a href="'.$statut['pseudo'].'">';
			if(file_exists($avatar50)){ echo '<img src="users/upload/avatars/'.$statut['id'].'-mini.jpg" height="50" width="50" alt="" />'; } else { echo '<img src="'.$avatarDefault.'" height="50" width="50" alt="" />'; }
			echo '</a>';
			echo '</div>';
			echo '<div class="statutContent">';
			echo '<p>'.nl2br($statut['statut_text']).'</p>';
			echo '</div>';
			echo '</li>';
		}
	}
	public static function newsPost($info){
		$resultat = Bdd::connect() -> prepare(SELECT.ALL.USERS_STATUT.' LEFT JOIN users ON users_statut.user_id = users.id ORDER BY statut_id DESC');
		$resultat -> execute();
		$infoPost = $resultat -> fetch(PDO::FETCH_ASSOC);
		return $infoPost[$info];
	}
}
La class est appelée depuis la page ajax updatestatus.php:
<?php
session_start();
include('../../class/functions.class.php');

Statut::sendStatut($_SESSION['id'],$_POST['statut_text'],$_POST['statut_acces'],$_POST['statut_photo'],$_POST['statut_etat']);
?>
Voici le code 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,
cache: false,
success: function(data){
$('textarea[name=statut_text]').attr('value','').css({'height':'40px'});
$(data).insertAfter('#newsPost').hide().fadeIn();
$('#loadStatut').hide();
}
});
},800);
return false;
});
[/javascript]
Et voici le code html :
			<div id="composer" data-referrer="composer">
				<div class="clearfix">
					<form method="post" action="home" id="statut">
						<input type="hidden" name="statut_acces" value="amis" />
						<input type="hidden" name="statut_photo" value="" />
						<input type="hidden" name="statut_etat" value="" />
						<div class="statutList">
							<ul class="clearfix">
								<li><a href="#" id="tab_1" class="active"><i class="arrowStatut"></i>Statut</a></li>
								<li><a href="#" id="tab_2"><i class="arrowStatut"></i>Photos / Vidéos</a></li>
							</ul>
							<img src="../img/loadStatut.gif" height="24" width="24" id="loadStatut" alt="" />
						</div>
						<div class="statutComposer">
							<div id="tab1">
								<textarea class="elastic" id="statut_text" name="statut_text" placeholder="Exprimez-vous..."></textarea>
							</div>
							<div id="tab2">
							
							</div>
						</div>
						<div class="statutFooter">
							<div class="lfloat">
								<div class="lfloat wa01f1">
									<a href="#" class="statutOptions tooltip_top" id="statutPhoto" title="Choisir une photo à télécharger"></a>
								</div>
								<div class="lfloat wa01f1">
									<a href="#" class="statutOptions tooltip_top" id="statutLocation" title="Comment êtes-vous ?"></a>
								</div>
							</div>
							<div class="rfloat">
								<div class="rfloat">
									<input type="submit" class="button blue buttonStatut" name="statut" value="Publier" />
								</div>
							</div>
						</div>
					</form>
				</div>
			</div>
			<div id="newsFeed" data-referrer="newsFeed">
				<div id="topList" class="listPoint"></div>
				<ol class="clearfix">
					<div id="newsPost"></div>
					<?php Statut::displayStatut(); ?>
				</ol>
				<div id="botList" class="listPoint"></div>
			</div>
Merci d'avance